Hoe kan ik een Java Spreadsheet gegevens structuur te creëren

Store spreadsheet gegevens met Java. het aantal achtergrond van Kuhar van & lt; a href = 'http: //www.fotolia.com'> Fotolia.com & lt; / a & gt;

Op het eenvoudigste niveau, kunt u een data-structuur te creëren voor een spreadsheet in Java met behulp van een eenvoudige 2D-array.Echter, deze aanpak laat veel te wensen over.Idealiter zou een spreadsheet datastructuur in staat zijn om efficiënt te vergroten of verkleinen, invoegen en verwijderen hele rijen en kolommen, en deze operaties zijn computationeel duur in een Java-array, waarbij Java om de volledige datastructuur telkens weer op te bouwen vanuit het niets achter de schermen een dergelijkbewerking wordt uitgevoerd.Een gelinkte lijst van gekoppelde lijsten:


In plaats daarvan moet je iets een beetje meer verfijnde gebruiken.Dit zal het inbrengen en verwijderen van rijen en kolommen en het aanpassen van de tabel veel sneller gebeurt.Echter, het zal komen met een kleine voorstelling kosten wanneer het tijd is om toegang te krijgen tot specifieke cellen van de spreadsheet de beurt.

instructies

  1. Maak een nieuwe Java-bestand en noem het "SpreadsheetStructure.java."Als u een favoriete Integrated Development Environment (IDE), kunt u dit doen door te klikken op "File", "Nieuwe Klasse."U kunt Windows Kladblok openen door te klikken op "Start", "All Programs", "Accessories", "Notepad" en het bestand met die naam bestand.

  2. Maak uw klas-interface door het volgende in het bestand dat u hebt gemaakt in stap 1. De rest van de stappen zal worden gewijd aan het invullen van de code voor elk van de methoden die zijn gedefinieerd in deze stap te plakken:

    public class Spreadsheet {

    LinkedList & amp; lt; LinkedList & gt;data = new LinkedList & amp; lt; LinkedList & gt; ();

    openbare 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 de klasse,

    * /

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

    }

    De basisdatastructuur een LinkedList rijen met een LinkedList van kolommen.Hoewel een eenvoudige 2D-array zou eenvoudiger te implementeren zijn, zou ook veel trager voor veel voorkomende spreadsheet operaties, in het bijzonder het plaatsen en verwijderen rijen.

  3. Plak de volgende code tussen de haakjes van de constructormethode, "Spreadsheet":

    openbare Spreadsheet () {

    addRow ();

    addColumn ();

    }

    Dit zorgt gewoon dat we beginnen met minstens één rij en kolom.

  4. Plak de volgende in de twee addRow methoden in te vullen.Men neemt geen argumenten en voegt automatisch de rij aan het einde van de spreadsheet, terwijl de andere kan de gebruiker aan te geven waar de rij toe te voegen:

    public void addRow () {

    data.addLast (nieuw LinkedList & amp; lt; String & gt; ());

    voor (int x = 0; x & amp; lt; GetHeight (); x ++). {

    data.getLast () toe te voegen (nieuw String ());

    }

    }

    public void addRow (int index) {

    data.add (index, nieuwe LinkedList & amp; lt; String & gt; ());

    voor (int x = 0; x & amp; lt; GetHeight (); x ++) {

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

    }

    }

  5. Plak de code op een rij te verwijderen in uw bronbestand:

    public void removeRow (int index) {

    data.remove (index);

    }

  6. Plak de code voor de twee addColumn methoden.Deze functie vergelijkbaar met de addRow methoden - zijn er twee, één voor het toevoegen van een kolom aan het einde van het blad en een voor het inbrengen van een kolom in het midden:

    public void addColumn () {

    voor (LinkedList l: data) {

    l.addLast (nieuw String ());

    }

    }

    public void addColumn (int index) {

    voor (LinkedList l: data) {

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

    }

    }

  7. Plak de code voor het verwijderen van kolommen:

    public void removeColumn (int index) {

    voor (LinkedList l: data) {

    l.remove (index);

    }

    }

  8. Plak de code die de inhoud van een bepaalde cel stelt een reeks van gegevens:

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

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

    }

  9. Vul de methoden voor het krijgen van de breedte en hoogte van de spreadsheet:

    public int GetWidth () {

    terug data.getFirst () formaat ();

    }

    public int GetHeight () {

    terug data.size ();

    }

  10. Implementeren van de methode toString.Dit zal een opgemaakte tekenreeks weergave terug te keren, in een tabel rijen en kolommen, de gegevens in het werkblad:

    public String toString () {

    String temp = "";

    voor (LinkedList l: data) {

    voor (Object o: l) {

    String s = (String) o;

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

    temp + = s + "";

    }

    temp + = "\ n";

    }

    return temp;

    }

  11. Plak volgende belangrijkste methode die de spreadsheet datastructuur zet via haar schreden en zorgt voor alles werkt zoals verwacht:

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

    }

708
0
3
Programmeren In Java