På den enklaste nivån , kan du skapa en datastruktur för ett kalkylblad i Java med hjälp av ett enkelt 2D- array . Ger dock detta synsätt en hel del att önska . Helst bör ett kalkylark datastruktur effektivt kunna ändra storlek , infoga och ta bort hela rader och kolumner , och dessa operationer är beräkningsmässigt dyr i en Java array som kräver Java för att bygga om hela datastrukturen från grunden bakom kulisserna varje gång en sådan operation utförs
Istället bör du använda något lite mer sofistikerat . en länkad lista av länkade listor . Detta gör det möjligt för insättning och uttag av rader och kolumner samt ändra storlek på tabellen för att hända mycket snabbare . Det kommer dock att komma med en liten prestanda kostnad när det blir dags att få tillgång till särskilda celler i kalkylbladet i tur
1 .
Skapa ett nytt Java -fil och ge den namnet " SpreadsheetStructure. java . " Om du har en favorit integrerad utvecklingsmiljö (IDE ) , kan du göra detta genom att klicka på " File ", " New Class. Även en enkel 2D array skulle vara enklare att genomföra , skulle det också vara mycket långsammare för många vanliga kalkylprogram verksamheten, särskilt infoga och ta bort rader .
3 .
Klistra in följande kod mellan parentes av konstruktören metoden " kalkylblad " :
offentlig -kalkylblad () {
addRow () ;
addColumn ( ) ;
}
Detta helt enkelt gör att vi börja med minst en enda rad och kolumn
. 4 .
Klistra in följande för att fylla i de två addRow metoder . Man tar inga argument och lägger automatiskt till den rad i slutet av tabellen , medan den andra tillåter användaren att ange var du vill lägga till raden :
public void addRow () {
data. addLast ( ny LinkedList
for (int x=0 , x
data. getLast ( ) lägga till ( ny String ());
}
}
public void addRow ( int index ) {
data. add ( index , nya LinkedList
for (int x=0 , x
data . get ( index) . add ( new String ());
}
}
5 .
Klistra in koden för att ta bort en rad i din källfil:
public void RemoveRow ( int index ) {
data. remove ( index) ,
}
6 .
Klistra in koden för de två addColumn metoder . Dessa fungerar ungefär som addRow metoder-det finns två , en för att lägga till en kolumn till slutet av bladet och en för att infoga en kolumn i mitten :
public void addColumn ( ) {
för ( LinkedList l : data ) {
l. addLast ( ny String ());
}
}
public void addColumn ( int index ) {
för ( LinkedList l : data ) {
l. add ( index new String ()) ;
}
}
7
Klistra in koden för att ta bort kolumner : .
offentliga void RemoveColumn ( int index ) {
för ( LinkedList l : data ) {
l. remove ( index ) ,
}
}
8
Klistra in koden som anger innehållet i en cell till en sträng av uppgifter.
public void setCell ( int x , int y , String NewData ) {
data . get ( x ) set ( y , NewData ) ,
}
9
Fyll i metoder för att få bredd och höjd i kalkylbladet . <. br />
public int getWidth () {
retur data. getFirst ( ) storlek () ; .
}
public int getHeight () {
retur data. size () ;
}
10 .
Genomföra toString -metoden . Detta kommer att returnera en formaterad sträng visa , i en tabell med rader och kolumner , de data i kalkylbladet :
public String toString ( ) {
String temp=" ";
för ( LinkedList l : data ) {
för ( Object o : l ) {
String s=( String ) o ;
om ( s. lika ("")) s="-tomma " ,
temp +=s + "" ;
}
temp +=" \ n " ;
}
returtemp ,
}
11
Klistra in . Följande huvudsakliga metoden som sätter kalkylbladsdata struktur genom sin takt och ser till allt fungerar som förväntat :
public static void main ( String [ ] args ) {
kalkylblad ark=nytt kalkylblad () ;
System. out. println ( sheet. toString ());
System. out. print ( sheet. getWidth ());
System. out . print ( " x " ) ;
System. out. println ( sheet. getHeight ());
sheet. addRow () ;
System. out. print ( sheet. getWidth ());
System. out. println ( " x " ) ;
System. out. println ( sheet. getHeight ());
sheet. setCell ( 0,0 , "1" ) ;
sheet. setCell ( 0,1 , " 2 " ) ;
sheet. setCell (1,0 , " 3 ") ;
blad . setCell ( 1,1 , " 4 ") ;
System. out. println ( sheet. toString ());
sheet. addColumn (1) ,
sheet. setCell (1,0 , " TEMP " ) ;
blad . setCell ( 1,1 , " TEMP " ) ;
System. out. println ( sheet. toString ());
sheet. removeRow (1) ,
System. out. println ( sheet. toString ());
sheet. removeColumn (1) ,
System. out. println ( sheet. toString ());
}
Previous:nothing Next:NET Framework 3.0 tutorials