Gå til innhold

Fleire problem Vector<Vector<Double>> inn og utlesing


Anbefalte innlegg

Eg burde ikkje ha oppretta ein ny tråd her, men eg trykte på løyst i den gamle posten min, og nå veit eg ikkje korleis eg kan fjerna den grønne markøren som viser at problemet er løyst.

Eg bruker nå ArrayList istadenfor Vector. Men eg har problemer med å forstå korleis eg kan laga ein god 2 dimensjonal Arraylist.

		ArrayList<ArrayList<Double>> vegar = new ArrayList<ArrayList<Double>>();

	ArrayList<Double> vegListe1 = new ArrayList<Double>();
	// vegListe1.get(0); // java.lang.ArrayIndexOutOfBoundsException
	vegListe1.add(3.5); // funker
	vegListe1.get(0); // funker naa	
	vegar.add(vegListe1);
	vegar.add(vegListe1);
	System.out.println(vegar);
	// La oss bytte ut listen med en annen
	ArrayList<Double> vegListe2 = new ArrayList<Double>();
	vegListe2.add(5.5);
	vegListe2.add(10.5);
	vegar.add(vegListe2);
	System.out.println(vegar);
	// Og hente listen pluss legge til et element i samme linje
	vegar.get(0).add(8.0);
	vegar.get(2).add(9.5);

	System.out.println(vegar);

 

Dersom eg vil laga ein 2 dimensjonal tabell har eg ikkje lyst å ha det slik eg har det nå. Eg legg inn ein ArrayList<Double>vegLista1 i tabellen vegar på plass nummer 0 og 1. Så legg eg til ein ny ArrayList<Double> vegLista2 i tabellen vegar på plass nummer 3.

Når eg prøver å legga til eit tal til på plass nummer 1 i vegar tabellen så gjer eg det sama i plass nummer 0 siden desse 2 peiker til same ArrayList dersom eg har forstått det korrekt.

Eg har ikkje lyst å oppretta 1000 forskjellige ArrayLista<Double> vegLista1,2,3... osv, berre for å legga inn 1000 forskjellige tabellar i vegar tabellen min.

 

Kan nokon visa meg korleis eg oppretter "ArrayList<ArrayList<Double>> vegar" for så og fylla den med forskjellige flyttal, har moglegheten til å endra på tala i tabellen min, og så skriva den ut?

 

Og eit siste spørsmål. Utvider ArrayList seg dersom eg legg til meir enn det er plass til i tabellen slik tilfellet er med Vector i C++?

Lenke til kommentar
Videoannonse
Annonse

Du gjør akkurat det samme som du ville gjort hvis du brukte en todimensjonal array. Og ja, ArrayList utvider seg automatisk

 

import java.util.ArrayList;

class ArrayListTest {
   public static void main (String [] args) {
       //Fylle lista med tall
       ArrayList<ArrayList<Double>> vegar = new ArrayList<ArrayList<Double>>();

       for (int i=0; i < 100; i++) {
           vegar.add(new ArrayList<Double>());
           for (int j=0; j < 100; j++) {
               vegar.get(i).add(new Double(0.0));
           }
       }

       System.out.println(vegar.get(99).get(99)); //Få tak i et tall
       vegar.get(1).set(1, new Double(1.0)); //Sett [1][1] til 1.0
   }
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...