Gå til innhold

[Løst]Vector<Vector<Double>> inn og utlesing


Anbefalte innlegg

Eg er ny i java programmering, men kan ein del C++.

Eg vil laga ein 2 dimensjonal tabell av flyttal, eg gjorde det slik:

 

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

 

Så vil eg prøva å få inn verdiar i denne tabellen, det viste seg ikkje å vera så beint fram i forhold til C++:) Kan nokon sei meg korleis eg legg inn ein verdi i tabellen min?

Prøvde meg med:

 

Scanner tastatur = new Scanner (System.in);

( vegar.get(2) ).add( 5, tastatur.nextDouble() );

 

Edit:

Klarte å kompilera programmet, men fekk denne feilmeldinga då eg kom til plassen der eg skulle fylla inn i tabellen:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0

Endret av Tellan
Lenke til kommentar
Videoannonse
Annonse

Ser ut som om du ikke har satt størrelsen på tabellen. må gjøres i det du initialiserer.

double[][] heltall = new double[10][10]; // Gir plasser fra 0 - 9 i hver retning.
heltall[<rekke>][<kolonne>] = 3.55; //for å sette inn i tabellen

 

Ellers må du bruke modifiserbare arrays, husker ikke hva de het, men google hjelper deg sikkert med det.

Endret av Joachricar
Lenke til kommentar
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0

Dette kan skje f.eks. når du bruker get med en ugyldig index (og i dette tilfellet har du trolig en tom liste av lister).

 

Vector er mindre vanlig å bruke i Java, utenfor situasjoner der trådsikkerhet et et tema (vector i C++ tilsvarer noenlunde ArrayList i Java, men du kan ikke overlaste operatorer). Spiller fint liten rolle i dette tilfellet, men verdt å nevne.

 

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

	Vector<Double> vegListe1 = new Vector<Double>();
	// vegListe1.get(0); // java.lang.ArrayIndexOutOfBoundsException
	vegListe1.add(3.5); // funker
	vegListe1.get(0); // funker naa	
	vegar.add(vegListe1);

	// La oss bytte ut listen med en annen
	Vector<Double> vegListe2 = new Vector<Double>();
	vegListe2.add(5.5);
	vegListe2.add(10.5);
	vegar.set(0, vegListe2);

	// Og hente listen pluss legge til et element i samme linje
	vegar.get(0).add(8.0);

	System.out.println(vegar);

Men hvis du vet hvor mange verdier som (max) skal leses inn, så kan double[x][y] kanskje gjøre nytten.

 

I API-en, ikke minst under java.util, finner du mye nyttig. På nett finnes det også mange guides/tutorials av typen "Java for C++ programmers".

Lenke til kommentar

Ah, men då byrjer eg å bruka ArrayList. Eg prøvde berre å bruka Vector akkurat slik som i C++, det fungerte fint det heilt til eg hadde for liten plass i tabellen min. Takk for svar

 

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0

Dette kan skje f.eks. når du bruker get med en ugyldig index (og i dette tilfellet har du trolig en tom liste av lister).

 

Vector er mindre vanlig å bruke i Java, utenfor situasjoner der trådsikkerhet et et tema (vector i C++ tilsvarer noenlunde ArrayList i Java, men du kan ikke overlaste operatorer). Spiller fint liten rolle i dette tilfellet, men verdt å nevne.

 

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

	Vector<Double> vegListe1 = new Vector<Double>();
	// vegListe1.get(0); // java.lang.ArrayIndexOutOfBoundsException
	vegListe1.add(3.5); // funker
	vegListe1.get(0); // funker naa	
	vegar.add(vegListe1);

	// La oss bytte ut listen med en annen
	Vector<Double> vegListe2 = new Vector<Double>();
	vegListe2.add(5.5);
	vegListe2.add(10.5);
	vegar.set(0, vegListe2);

	// Og hente listen pluss legge til et element i samme linje
	vegar.get(0).add(8.0);

	System.out.println(vegar);

Men hvis du vet hvor mange verdier som (max) skal leses inn, så kan double[x][y] kanskje gjøre nytten.

 

I API-en, ikke minst under java.util, finner du mye nyttig. På nett finnes det også mange guides/tutorials av typen "Java for C++ programmers".

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...