Nwlapcug.com


Come creare una struttura di dati del foglio di calcolo di Java

Come creare una struttura di dati del foglio di calcolo di Java


Al livello più semplice, è possibile creare una struttura di dati per un foglio di calcolo in Java utilizzando una semplice matrice 2D. Tuttavia, questo approccio lascia molto a desiderare. Idealmente, una struttura di dati del foglio di calcolo dovrebbe essere in grado di ridimensionare in modo efficiente, inserire ed eliminare intere righe e colonne, e queste operazioni sono computazionalmente costose in un array di Java, che richiedono Java ricostruire la struttura di dati da zero dietro le quinte ogni volta che viene eseguita tale operazione.

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

Istruzioni

1

Creare un nuovo file di Java e il nome "SpreadsheetStructure.java." Se si dispone di un ambiente di sviluppo integrato (IDE) preferito, è possibile farlo facendo clic su "File", "Nuova classe". In alternativa, è possibile aprire il blocco note di Windows facendo clic su "Start", "Tutti i programmi", "accessori" "Blocco note" e salvare il file con lo stesso 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 questo passaggio:

public class {di foglio di calcolo

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

public Spreadsheet() { }

public void addRow() { }

public void addRow(int index) { }

public void removeRow(int index) { }

public void removeColumn(int index) { }

public void addColumn() { }

public void addColumn(int index) { }

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

public int getWidth() { }

public int getHeight() { }

public String toString() { }

/**

* Test the class,

*/

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

}

La struttura di dati di base sarà una classe LinkedList di righe che contengono un oggetto LinkedList di colonne. Se una matrice 2D semplice sarebbe più semplice da implementare, che sarebbe anche molto più lento per molte operazioni comuni di foglio di calcolo, soprattutto inserimento ed eliminazione di righe.

3

Incollare il codice seguente tra le parentesi del metodo costruttore, "Foglio di calcolo":

public Spreadsheet() {

addRow();

addColumn();

}

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

4

Incollare il seguente per compilare i due metodi addRow. Uno non accetta argomenti e aggiunge automaticamente la riga alla fine del foglio di calcolo, mentre l'altra consente all'utente di specificare dove aggiungere la riga:

public void addRow() {

data.addLast(new LinkedList<String>());

for (int x = 0; x < getHeight(); x++) {

data.getLast().add(new String());

}

}

public void addRow(int index) {

data.add(index, new LinkedList<String>());

for (int x = 0; x < getHeight(); x++) {

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

}

}5

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

public void removeRow(int index) {

data.remove(index);

}6

Incollare il codice per i due metodi di addColumn. Questi funzionano similmente ai metodi addRow..--ci sono due, uno per aggiungere una colonna alla fine del foglio e uno per l'inserimento di una colonna nel mezzo:

public void addColumn() {

for (LinkedList l : data) {

l.addLast(new String());

}

}

public void addColumn(int index) {

for (LinkedList l : data) {

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

}

}7

Incollare il codice per la rimozione di colonne:

public void removeColumn(int index) {

for (LinkedList l : data) {

l.remove(index);

}

}8

Incollare il codice che imposta il contenuto di una cella specificata in una stringa di dati:

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

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

}9

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

public int getWidth() {

return data.getFirst().size();

}

public int getHeight() {

return data.size();

}10

Implementare il metodo toString. Questo restituirà una stringa formattata, visualizzazione, in una tabella di righe e colonne, i dati del foglio di calcolo:

public String toString() {

String temp = "";

for (LinkedList l : data) {

for (Object o : l) {

String s = (String) o;

if (s.equals("")) s = "-empty-";

temp += s + " ";

}

temp += "\n";

}

return temp;

}11

Incollare il seguente metodo principale che mette la struttura di dati del foglio di calcolo attraverso i suoi passi e garantisce che tutto funziona come previsto:

public static void main(String[] args) {

Spreadsheet sheet = new Spreadsheet();

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

}