Comment créer une structure de données de feuille de calcul Java
Au niveau le plus simple, vous pouvez créer une structure de données pour une feuille de calcul en Java à l'aide d'un simple tableau 2D. Cependant, cette approche laisse beaucoup à désirer. Idéalement, une structure de données de feuille de calcul devrait être capable de redimensionner, d'insérer et de supprimer efficacement des lignes et des colonnes entières, et ces opérations sont coûteuses en temps de calcul dans un tableau Java, ce qui oblige Java à reconstruire la structure de données entière à partir de zéro dans les coulisses à chaque fois qu'un tel l'opération est effectuée.
Au lieu de cela, vous devriez utiliser quelque chose d'un peu plus sophistiqué : une liste chaînée de listes chaînées. Cela permettra l'insertion et la suppression de lignes et de colonnes ainsi que le redimensionnement du tableau de se produire beaucoup plus rapidement. Cependant, cela entraînera un faible coût en termes de performances lorsque viendra le temps d'accéder à des cellules spécifiques de la feuille de calcul hors tour.
Étape 1
Créez un nouveau fichier Java et nommez-le "SpreadsheetStructure.java". Si vous avez un environnement de développement intégré (IDE) préféré, vous pouvez le faire en cliquant sur "Fichier", "Nouvelle classe". Alternativement, vous pouvez ouvrir le Bloc-notes Windows en cliquant sur "Démarrer", "Tous les programmes", "Accessoires", "Bloc-notes" et en enregistrant le fichier avec ce nom de fichier.
Étape 2
Créez votre interface de classe en collant ce qui suit dans le fichier que vous avez créé à l'étape 1. Le reste des étapes sera consacré au remplissage du code pour chacune des méthodes définies à cette étape :
classe publique tableur {
Liste Liée données = nouvelle liste liée(); 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() { } /** * Tester la classe, */ public static void main(String[] args) { }
}
La structure de données de base sera une LinkedList de lignes contenant une LinkedList de colonnes. Bien qu'un simple tableau 2D soit plus simple à mettre en œuvre, il serait également beaucoup plus lent pour de nombreuses opérations courantes de feuille de calcul, en particulier l'insertion et la suppression de lignes.
Étape 3
Collez le code suivant entre les crochets de la méthode constructeur, "Spreadsheet":
tableur public() { addRow(); ajouterColonne(); }
Cela garantit simplement que nous commençons avec au moins une seule ligne et colonne.
Étape 4
Collez ce qui suit pour remplir les deux méthodes addRow. L'un ne prend aucun argument et ajoute automatiquement la ligne à la fin de la feuille de calcul, tandis que l'autre permet à l'utilisateur de spécifier où ajouter la ligne :
public void addRow () { data.addLast (new LinkedList()); for (int x = 0; x < getHeight(); x++) { data.getLast().add(new String()); } } public void addRow(int index) { data.add(index, new LinkedList()); for (int x = 0; x < getHeight(); x++) { data.get(index).add(new String()); } }
Étape 5
Collez le code pour supprimer une ligne dans votre fichier source :
public void removeRow(int index) { data.remove(index); }
Étape 6
Collez le code des deux méthodes addColumn. Celles-ci fonctionnent de manière similaire aux méthodes addRow - il y en a deux, une pour ajouter une colonne à la fin de la feuille et une pour insérer une colonne au milieu :
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()); } }
Étape 7
Collez le code pour supprimer les colonnes :
public void removeColumn(int index) { for (LinkedList l : data) { l.remove(index); } }
Étape 8
Collez le code qui définit le contenu d'une cellule donnée dans une chaîne de données :
public void setCell(int x, int y, String newData) { data.get(x).set(y, newData); }
Étape 9
Remplissez les méthodes pour obtenir la largeur et la hauteur de la feuille de calcul :
public int getWidth() { return data.getFirst().size(); } public int getHeight() { return data.size(); }
Étape 10
Implémentez la méthode toString. Cela renverra une chaîne formatée affichant, dans un tableau de lignes et de colonnes, les données de la feuille de calcul :
public String toString() { String temp = ""; for (LinkedList l : data) { for (Object o : l) { String s = (String) o; if (s.equals("")) s = "-vide-"; temp += s + " " ; } temp += "\n"; } retour temp; }
Collez la méthode principale suivante qui met la structure de données de la feuille de calcul à l'épreuve et garantit que tout fonctionne comme prévu :
public static void main(String[] args) { Tableur = new Spreadsheet(); System.out.println(sheet.toString()); System.out.print(sheet.getWidth()); System.out.print(" x "); System.out.println(sheet.getHeight()); feuille.addRow(); System.out.print(sheet.getWidth()); System.out.print(" x "); System.out.println(sheet.getHeight()); feuille.setCell(0,0,"1"); feuille.setCell(0,1,"2"); feuille.setCell(1,0,"3"); feuille.setCell(1,1,"4"); System.out.println(sheet.toString()); feuille.addColumn(1); feuille.setCell(1,0, "TEMP"); feuille.setCell(1,1, "TEMP"); System.out.println(sheet.toString()); feuille.removeRow(1); System.out.println(sheet.toString()); feuille.removeColumn(1); System.out.println(sheet.toString()); }