Come creare un foglio di calcolo Struttura dati Java

February 11

Come creare un foglio di calcolo Struttura dati Java


Al livello più semplice, è possibile creare una struttura di dati per un foglio di calcolo in Java utilizzando una matrice 2D semplice. Tuttavia, questo approccio lascia molto a desiderare. Idealmente, una struttura dati foglio di calcolo dovrebbe essere in grado di ridimensionare in modo efficiente, inserire e cancellare intere righe e colonne, e queste operazioni sono computazionalmente costosi in un array Java, che richiede Java per ricostruire l'intera struttura di dati da zero dietro le quinte di volta in volta ad un operazione viene eseguita.

Invece, si dovrebbe usare qualcosa di un po 'più sofisticato: una lista concatenata di liste collegate. Questo permetterà l'inserimento e la rimozione di righe e colonne, nonché il ridimensionamento della tabella per accadere molto più rapidamente. Tuttavia, sarà disponibile con un piccolo costo delle prestazioni quando arriva il momento di accedere a specifiche celle del foglio di calcolo fuori turno.

istruzione

1 Creare un nuovo file Java e il nome "SpreadsheetStructure.java." Se si dispone di un favorito Integrated Development Environment (IDE), potete farlo cliccando su "File", "Nuova classe". In alternativa, è possibile aprire il Blocco note di Windows cliccando su "Start", "Tutti i programmi", "Accessori", "Blocco note" e salvare il file con quel nome di file.

2 Crea la tua interfaccia di classe incollando il seguente nel file creato nel passaggio 1. Il resto dei passaggi sarà dedicato alla compilazione del codice per ciascuno dei metodi definiti in questa fase:

public class foglio di calcolo {

LinkedList<LinkedList> data = new LinkedList<LinkedList>();

Foglio di calcolo pubblico () {}

addRow public void () {}

addRow public void (int index) {}

removeRow public void (int index) {}

removeColumn public void (int index) {}

addColumn public void () {}

addColumn public void (int index) {}

SetCell public void (int x, int y, String newData) {}

public int getWidth () {}

public int getHeight () {}

Public String toString () {}

/ **

* Verificare la classe,

* /

void main (String [] args) public static {}

}

La struttura dati di base sarà un LinkedList di righe contenenti un LinkedList di colonne. Anche se un semplice array 2D sarebbe più semplice da implementare, sarebbe anche molto più lento per molte operazioni comuni fogli di calcolo, in particolare inserimento e cancellazione di righe.

3 Incollare il seguente codice tra le parentesi del metodo di costruzione, "foglio di calcolo":

public Spreadsheet() {

Aggiungi riga();

addColumn ();

}

Questo assicura semplicemente che si parte con almeno una singola riga e colonna.

4 Incollare il seguente per riempire i due metodi AddRow. Uno non ha argomenti e automaticamente aggiunge la riga alla fine del foglio di calcolo, mentre l'altro consente all'utente di specificare dove aggiungere la riga:

public void addRow() {

data.addLast (nuovo LinkedList & lt; String> ());

for (int x = 0; x & lt; getHeight (); x ++) {

. Data.getLast () aggiungere (new String ());

}

}

addRow public void (int index) {

data.add (indice, nuovo LinkedList & lt; String> ());

for (int x = 0; x & lt; getHeight (); x ++) {

data.get (indice) .add (new String ());

}

}

5 Incollare il codice per rimuovere una riga nel file di origine:

public void removeRow(int index) {

data.remove (indice);

}

6 Incollare il codice per i due metodi addColumn. Questi funzione simile ai metodi AddRow - ci sono due, uno per l'aggiunta di una colonna alla fine del foglio e una per l'inserimento di una colonna nel mezzo:

public void addColumn() {

per (LinkedList l: dati) {

l.addLast (new String ());

}

}

addColumn public void (int index) {

per (LinkedList l: dati) {

l.add (indice, new String ());

}

}

7 Incollare il codice per la rimozione di colonne:

public void removeColumn(int index) {

per (LinkedList l: dati) {

l.remove (indice);

}

}

8 Incollare il codice che imposta il contenuto di una data cella di una stringa di dati:

public void setCell(int x, int y, String newData) {

data.get (x) .set (y, newData);

}

9 Riempire i metodi per ottenere la larghezza e l'altezza del foglio di calcolo:

public int getWidth() {

tornare data.getFirst () dimensioni ().;

}

public int getHeight () {

tornare data.size ();

}

10 Implementare il metodo toString. Ciò restituirà una stringa formattata visualizzazione, in una tabella di righe e colonne, i dati nel foglio:

public String toString() {

String temperatura = "";

per (LinkedList l: dati) {

for (Object o: l) {

String s = (String) o;

se (s.equals ( "")) s = "-vuoto-";

Temp + = s + "";

}

Temp + = "\ n";

}

tornare temperatura;

}

11 Incollare il seguente metodo principale che pone la struttura dei dati foglio di calcolo attraverso i suoi passi e assicura tutto funziona come previsto:

public static void main(String[] args) {

foglio di foglio di calcolo Foglio di calcolo = new ();

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.print ( "x");

System.out.println (sheet.getHeight ());

sheet.setCell (0,0, "1");

sheet.setCell (0,1, "2");

sheet.setCell (1,0, "3");

sheet.setCell (1,1, "4");

System.out.println (sheet.toString ());

sheet.addColumn (1);

sheet.setCell (1,0, "TEMP");

sheet.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 ());

}