Cómo crear una estructura de datos de hojas de cálculo java
Al nivel más simple, puede crear una estructura de datos de una hoja de cálculo en Java usando un simple matriz 2D. Sin embargo, este enfoque deja mucho que desear. Idealmente, una estructura de datos de hoja de cálculo debe ser capaz de cambiar el tamaño de manera eficiente, insertar y eliminar filas y columnas completas, y estas operaciones son computacionalmente caro en una matriz de Java, lo que requiere Java para reconstruir toda la estructura de datos desde cero detrás de las escenas cada vez que tal se realiza la operación.
En su lugar, debe usar algo un poco más sofisticado: una lista enlazada de listas enlazadas. Esto permitirá la inserción y eliminación de filas y columnas, así como el cambio de tamaño de la tabla sucedan mucho más rápidamente. Sin embargo, vendrá con un pequeño costo de rendimiento cuando llega el momento de acceder a células específicas de la hoja de cálculo fuera de turno.
Crear un nuevo archivo de Java y el nombre "SpreadsheetStructure.java." Si usted tiene un favorito entorno de desarrollo integrado (IDE), puede hacerlo pulsando "Archivo," "Nueva clase." Como alternativa, puede abrir el Bloc de notas de Windows haciendo clic "Comienzo," "Todos los programas," "Accesorios," "Bloc" y guardar el archivo con ese nombre de archivo.
Crear su interfaz de clase pegando lo siguiente en el archivo que ha creado en el paso 1. El resto de los pasos se dedica a llenar en el código para cada uno de los métodos definidos en este paso:
Hoja de cálculo public class {
Lista enlazada<-LinkedList&datos GT- = new LinkedList<-LinkedList> - (+) - Hoja de cálculo pública () {} 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 {} public void SetCell (int x, int y, cadena newData) {} public int getWidth () {} public int getHeight () {} public String toString () {} / ** * Prueba de la clase * / public void main (String [] args) {} estáticas
}
La estructura de datos básica será una LinkedList de filas que contienen una LinkedList de columnas. A pesar de una sencilla matriz 2D sería más sencillo de implementar, también sería mucho más lento para muchas operaciones de hojas de cálculo comunes, especialmente la inserción y eliminación de filas.
Pegar el código siguiente entre los soportes del método constructor, "Hoja de cálculo":
Hoja de cálculo pública () {addRow () - addColumn () -}
Esto simplemente asegura que empezamos con al menos una sola fila y columna.
Pegar el siguiente para rellenar los dos métodos AddRow. Uno no tiene argumentos y agrega automáticamente la fila al final de la hoja de cálculo, mientras que el otro permite al usuario especificar dónde agregar la fila:
pública addRow void () {data.addLast (new LinkedList<-String> - ()) - for (int x = 0- x &ntegrada getHeight () - x ++) {data.getLast (.) añadir (nueva cadena ()) - addRow}} public void (int index) {data.add (índice, new LinkedList<-String> - ()) - for (int x = 0- x &ntegrada getHeight () - x ++) {data.get (índice) .add (nueva cadena ()) -}}
Pegar el código para eliminar una fila en el archivo de origen:
RemoveRow pública vacío (int index) {data.remove (índice) -}
Pegar el código para los dos métodos AddColumn. Estos funcionan de forma similar a los métodos AddRow - hay dos, una para la adición de una columna al final de la hoja y una para la inserción de una columna en el medio:
pública addColumn void () {for (LinkedList l: datos) {l.addLast (nueva cadena ()) -}} void addColumn (int index) {for pública (LinkedList l: datos) {l.add (índice, nueva cadena ()) -}}
Pegar el código para la eliminación de columnas:
public void removeColumn (int index) {for (LinkedList l: datos) {l.remove (índice) -}}
Vídeo: Google Drive - Apps Script - Clase1 - Como Programar una hoja de calculo de google
Pegar el código que establece el contenido de una celda dada a una serie de datos:
public void SetCell (int x, int y, Cadena newData) {data.get (x) .el juego (y, newData) -}
Complete los métodos para obtener el ancho y la altura de la hoja de cálculo:
public int getWidth () {return data.getFirst () size () -.} int getHeight pública () {return data.size () -}
Implementar el método toString. Esto devolverá una cadena con formato que muestra, en una tabla de filas y columnas, los datos en la hoja de cálculo:
public String toString () {String temp = ""-para (LinkedList l: datos) {for (Object o: l) {String s = (String) o-if (s.equals ("")) S = "-vacío-"-Temp + = s + " "- temp +} = "norte"-}} retorno TEMP-
Pegue el siguiente método principal que pone a la estructura de datos de hojas de cálculo a través de sus pasos y se asegura de que todo funciona como se esperaba:
(String [] args) {hoja de hoja de cálculo public void = nueva hoja de cálculo () - 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, "TEMPERATURA") -sheet.setCell (1,1, "TEMPERATURA") -System.out.println (sheet.toString ()) - sheet.removeRow (1) -System.out.println (sheet.toString ()) - sheet.removeColumn (1) -System.out.println (hoja. Encadenar())-}
Vídeo: Hoja de calculo en Java
referencias
- enlazar Java: ListaEnlazada