olika sätt att behålla data när programmet körs, Java

Permalänk
Medlem

olika sätt att behålla data när programmet körs, Java

Hej!

Håller på och snickrar lite på ett program i java och jag undrar helt enkelt hur ni gör när ni vill "spara" data medans användaren kör programmet. Just nu kör jag en array men det känns osmidigt speciellt när man ska visa datan igen och den har fyra led (sparaarray[][][][]).

Är det bara jag som är dålig på att använda det här eller finns det smidigare sätt att göra det på ?

Visa signatur
Permalänk
Skrivet av dennis93:

Hej!

Håller på och snickrar lite på ett program i java och jag undrar helt enkelt hur ni gör när ni vill "spara" data medans användaren kör programmet. Just nu kör jag en array men det känns osmidigt speciellt när man ska visa datan igen och den har fyra led (sparaarray[][][][]).

Är det bara jag som är dålig på att använda det här eller finns det smidigare sätt att göra det på ?

Det där ser väldigt skumt ut, kan du försöka förklara vad det är du vill spara... Det du gjort känns som det borde vara både minnesslukande och svårt att hantera för dig som kodare...

Visa signatur

Corsair Vengeance LPX 4x8GB DDR4 2666MHz CL16 | Intel Core i7 6700 3,4 GHz 8MB | MSI Z170A KRAIT GAMING | Corsair Force Series 3 120 GB | Seagate SSHD Desktop 2 TB 7200 RPM 3,5" | Creative Sound Blaster Z PCIe | Western Digital 500 GB | Samsung Writemaster | Corsair TX750 V2 750 W | EVGA GeForce GTX 970 4GB SSC ACX 2.0+| Fractal Design Define R5 (Svart)

Permalänk
Medlem

Beror helt på vad för data du ska lagra.

Annars skulle jag föredra arraylist

Permalänk
Medlem

Hmm... känns som det finns ytterst få tillfällen man skulle använda en fyrdimensionell array... :s
Data bör finnas i respektive objekt, så länge du har referenser till dina objekt kommer inte datan försvinna

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |

Permalänk
Medlem

Jag har skapat ett ui i netbeans och där får användaren mata in data, men problemet är att samma form används flera gånger så jag har hittills använt variabel.gettext() osv å sedan sparat in det i en array eftersom att jag vill kunna komma åt datan även när användaren matat in data en andra gång.

Exempel: säg att man ska lägga nån slags veckorapport å då ska man fylla samma formulär för varje dag, då vill man ju spara det som händer för varje dag, mitt program är inte om veckorapporter men principen e samma, det är mycket info som ska in därför har jag kört. På så långa arrayer. Skrivet med min iPhone så ha överseende ^^

Skickades från m.sweclockers.com

Visa signatur
Permalänk
Medlem
Skrivet av dennis93:

Jag har skapat ett ui i netbeans och där får användaren mata in data, men problemet är att samma form används flera gånger så jag har hittills använt variabel.gettext() osv å sedan sparat in det i en array eftersom att jag vill kunna komma åt datan även när användaren matat in data en andra gång.

Exempel: säg att man ska lägga nån slags veckorapport å då ska man fylla samma formulär för varje dag, då vill man ju spara det som händer för varje dag, mitt program är inte om veckorapporter men principen e samma, det är mycket info som ska in därför har jag kört. På så långa arrayer. Skrivet med min iPhone så ha överseende ^^

Skickades från m.sweclockers.com

Gör som Gnejs rekommenderar och skapa en klass för dina dagar, om vi tar exemplet med veckorapporter. På så vis får du all data logiskt grupperad och slipper multidimensionella arrayer. OBS! ge dina fält och metoder ordentliga namn, till exempel förnamn/efternamn/telefonnummer.

class Dag { private String fält1; private String fält2; private String fält3; public String getFält1() { return fält1; } public void setFält1(String värde) { fält1 = värde; } public String getFält2() { return fält2; } public void setFält2(String värde) { fält2 = värde; } public String getFält3() { return fält3; } public void setFält3(String värde) { fält3 = värde; } }

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Gör som Gnejs rekommenderar och skapa en klass för dina dagar, om vi tar exemplet med veckorapporter. På så vis får du all data logiskt grupperad och slipper multidimensionella arrayer. OBS! ge dina fält och metoder ordentliga namn, till exempel förnamn/efternamn/telefonnummer.

class Dag { private String fält1; private String fält2; private String fält3; public String getFält1() { return fält1; } public void setFält1(String värde) { fält1 = värde; } public String getFält2() { return fält2; } public void setFält2(String värde) { fält2 = värde; } public String getFält3() { return fält3; } public void setFält3(String värde) { fält3 = värde; } }

Okay det låter smartare Så jag får alltså skapa en klass för varje dag ?

Visa signatur
Permalänk
Medlem

Var ett tag sen jag höll på med java så kanske har helt fel nu

Jag hade gjort klassen såhär

public class Dag { private String fält1; private String fält2; private String fält3; public Dag(String f1, String f2, String f3) { fält1 = f1; fält2 = f2; fält3 = f3; } public String getFält1() { return fält1; } public String getFält2() { return fält2; } public String getFält3() { return fält3; } }

Du behöver inte skapa en klass för varje dag.

I din main klass använder du en array för att hålla reda på dagarna

Dag[] dagar = new Dag[500]; //500 är hur många du vill ha

För att lägga till:

dagar[0] = new Dag (värde1, värde2, värde3);

För att hämta:

värde1 = dagar[0].getFält1(); värde2 = dagar[0].getFält2(); värde3 = dagar[0].getFält3();

Permalänk
Medlem
Skrivet av mylife:

Var ett tag sen jag höll på med java så kanske har helt fel nu

Jag hade gjort klassen såhär

public class Dag { private String fält1; private String fält2; private String fält3; public Dag(String f1, String f2, String f3) { fält1 = f1; fält2 = f2; fält3 = f3; } public String getFält1() { return fält1; } public String getFält2() { return fält2; } public String getFält3() { return fält3; } }

Du behöver inte skapa en klass för varje dag.

I din main klass använder du en array för att hålla reda på dagarna

Dag[] dagar = new Dag[500]; //500 är hur många du vill ha

För att lägga till:

dagar[0] = new Dag (värde1, värde2, värde3);

För att hämta:

värde1 = dagar[0].getFält1(); värde2 = dagar[0].getFält2(); värde3 = dagar[0].getFält3();

Tack! Precis vad jag behövde

Visa signatur
Permalänk
Medlem
Skrivet av mylife:

Var ett tag sen jag höll på med java så kanske har helt fel nu

Tycker du gör helt rätt som sätter instansvariablerna i konstruktorn

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Nu vet vi ju inte exakt vad du ska göra men att använda någon form av List lr Map är nog att rekommendera istället för en array

Visa signatur

Spelrigg: 800D| i7 3930K@4,7 GHz - Custom WC | 32 GB Kingston HyperX Beast | 7970 GHz X-Edition |1x30 Dell U3011, 2x27" | Sennheiser HD650 | Xonar Essence STX |
Laptop: G74SX 17,3" 120 Hz 3D |
Server: Phenom II X4 955BE | Corsair XMS3 8 GB | 16 HDDs, 27 TB |
HTPCs: ASUS EEE Box 1.8 Ghz | Blu-Ray | OCZ Vertex 2 60 GB | 4 GB RAM |