Au niveau le plus simple, vous pouvez créer une structure de données pour une feuille de calcul en Java en utilisant un tableau 2D simple. Cependant, cette approche laisse beaucoup à désirer. Idéalement, une structure de données de feuille de calcul devrait être capable de redimensionner efficacement, insérer et supprimer des lignes et des colonnes entières, et ces opérations sont coûteux en calcul dans un tableau Java, ce qui nécessite Java pour reconstruire la structure de données à partir de zéro dans les coulisses à chaque fois une telle l`opération est effectuée.
Au lieu de cela, vous devez utiliser quelque chose d`un peu plus sophistiqué: une liste liée de listes liées. Cela va permettre l`insertion et le retrait de lignes et de colonnes ainsi que le redimensionnement de la table se produisent beaucoup plus rapidement. Cependant, il viendra avec un faible coût de performance quand vient le temps d`accéder à des cellules spécifiques de la feuille de calcul hors tour.
Créer un nouveau fichier Java et nommez-le "SpreadsheetStructure.java." Si vous avez un favori environnement de développement intégré (IDE), vous pouvez le faire en cliquant "Fichier," "Nouvelle classe." Alternativement, vous pouvez ouvrir le Bloc-notes de Windows en cliquant "Démarrer," "Tous les programmes," "Accessoires," "Bloc-notes" et enregistrez le fichier avec ce nom de fichier.
Créez votre interface de classe en collant le suivant dans le fichier créé à l`étape 1. Le reste des étapes sera consacré à remplir dans le code pour chacune des méthodes définies dans cette étape:
public class Spreadsheet {
LinkedList
data = new LinkedList (); Spreadsheet publique () {}
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 () {}
/ **
* Test de la classe,
* /
public static void main (String [] args) {}
}
La structure de base de données sera un LinkedList de lignes contenant une LinkedList de colonnes. Bien qu`un tableau 2D simple serait plus simple à mettre en œuvre, il serait également beaucoup plus lent pour de nombreuses opérations de feuille de calcul commune, en particulier l`insertion et suppression de lignes.
Collez le code suivant entre les parenthèses de la méthode constructeur, "Tableur":
Spreadsheet publique () {
ajouter une rangée();
addColumn ();
}
Cela garantit simplement que nous commençons avec au moins une seule ligne et colonne.
Collez le texte suivant pour remplir les deux méthodes de addRow. On 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:
addRow public void () {
data.addLast (new LinkedList
()); for (int x = 0- x lt; getHeight () - x ++) {
. Data.getLast () ajouter (new String ());
}
}
addRow public void (int index) {
data.add (index, new LinkedList
()); for (int x = 0- x lt; getHeight () - x ++) {
data.get (index) .add (new String ());
}
}
Collez le code pour supprimer une ligne dans votre fichier source:
removeRow public void (int index) {
data.remove (index);
}
Collez le code pour les deux méthodes de addColumn. Celles-ci fonctionnent de manière similaire aux modes de addRow - il y en a deux, l`un pour l`ajout d`une colonne à l`extrémité de la feuille et l`autre pour l`insertion d`une colonne dans le milieu:
addColumn public void () {
pour (LinkedList l: data) {
l.addLast (new String ());
}
}
addColumn public void (int index) {
pour (LinkedList l: data) {
l.add (index, new String ());
}
}
Collez le code pour la suppression de colonnes:
removeColumn public void (int index) {
pour (LinkedList l: data) {
l.remove (index);
}
}
Collez le code qui définit le contenu d`une cellule donnée à une chaîne de données:
SetCell public void (int x, int y, String newData) {
data.get (x) .set (y, newData);
}
Remplissez les méthodes pour obtenir la largeur et la hauteur de la feuille de calcul:
public int getWidth () {
retour data.getFirst () size ().
}
public int getHeight () {
retour data.size ();
}
Mettre en œuvre la méthode toString. Ceci renvoie une chaîne formatée affichant, dans un tableau de lignes et de colonnes, les données dans la feuille de calcul:
public String toString () {
Chaîne temp = "";
pour (LinkedList l: data) {
pour (Object o: l) {
String s = (String) o;
if (s.equals ("")) S = "-vide-";
Temp + = s + " ";
}
température + = " n";
}
retour temporaire;
}
Collez la principale méthode suivante qui met la structure de données de feuille de calcul à l`épreuve et assure que tout fonctionne comme prévu:
main (String [] args) {public static void
feuille de feuille de calcul = 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 ());
}