ubiquitour.com

Cómo crear una estructura de datos de hoja de cálculo de Java

Cómo crear una estructura de datos de hoja de cálculo de Java

En el nivel más simple, puede crear una estructura de datos para una hoja de cálculo en Java utilizando una matriz simple de 2D. Sin embargo, este enfoque deja mucho que desear. Idealmente, una estructura de datos de la hoja de cálculo debería poder eficiente cambiar el tamaño, insertar y eliminar columnas y filas enteras, y estas operaciones son computacionalmente costosas en un arreglo de Java, que requiere Java reconstruir la estructura de datos todo desde el principio detrás de las escenas cada vez que se realiza tal operación.

Por el contrario, debe usar algo un poco más sofisticado: una lista vinculada de listas enlazadas. Esto permitirá la inserción y eliminación de filas y columnas, así como el tamaño de la tabla para ocurrir mucho más rápidamente. Sin embargo, vendrá con un pequeño rendimiento costo cuando llegue el momento de acceder a células específicas de la hoja de cálculo fuera de turno.

Instrucciones

1 Crear un nuevo archivo de Java y el nombre "SpreadsheetStructure.java." Si usted tiene un entorno integrado de desarrollo (IDE) favorito, usted puede hacer esto haciendo clic en "Archivo", "Nueva clase". Como alternativa, puede abrir Bloc de notas de Windows haciendo clic en "Inicio", "Todos los programas" "accesorios" "Bloc de notas" y guardar el archivo con ese nombre de archivo.

2 Pegar lo siguiente en el archivo que creó en el paso 1 para crear la interfaz de clase. El resto de los pasos se dedicará a completar el código para cada uno de los métodos definidos en este paso:

clase {} hoja de cálculo

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 estructura de datos básica será un LinkedList de filas que contienen un LinkedList de columnas. Aunque un simple array 2D sería más sencillo de implementar, también sería mucho más lenta para muchas operaciones comunes de la hoja de cálculo, especialmente insertar y eliminar filas.

3 Pegue el código siguiente entre las escuadras del método constructor, "Hoja de cálculo":

public Spreadsheet() {

addRow();

addColumn();

}

Esto simplemente garantiza que empezamos con por lo menos una sola fila y columna.

4 Pegar lo siguiente para llenar los dos métodos addRow. Uno no toma ningún argumento y añade automáticamente la fila al final de la hoja de cálculo, mientras que el otro permite al usuario que especifique dónde desea añadir la fila:

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

Pegue el código para quitar una fila en el archivo de código fuente:

public void removeRow(int index) {

data.remove(index);

}6

Pegue el código para los dos métodos addColumn. Éstos funcionan semejantemente a los métodos addRow--hay dos, uno para agregar una columna al final de la hoja y otro para insertar una columna en el medio:

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

Pegue el código de eliminación de columnas:

public void removeColumn(int index) {

for (LinkedList l : data) {

l.remove(index);

}

}8

Pegue el código que establece el contenido de una celda determinada en una cadena de datos:

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

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

}9

Rellene los métodos para obtener la anchura y la altura de la hoja de cálculo:

public int getWidth() {

return data.getFirst().size();

}

public int getHeight() {

return data.size();

}10

Implementar el método toString. Esto devolverá una cadena con formato mostrando en una tabla de filas y columnas, los datos en la hoja de cálculo:

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

Pegue el siguiente método principal que pone la estructura de datos de la hoja de cálculo a través de sus pasos y que todo funciona como se esperaba:

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

}