jbe Skrevet 10. november 2003 Del Skrevet 10. november 2003 Har et lite problem... Har en array, som jeg har satt ant plasser=0, fordi før jeg vil legge noe inn i tabellen, vil jeg øke antall plasser med 1. Går dette ann, eller bør jeg bruke hash-map eller noe liknende? eks: Int[] tabell=new Int[0]; // her vil jeg ha en setning som gjør at tabellen får en plass til. tabell[0]=4; // nok en gang gi tabellen en plass til tabell[1]=3; OSV... Lenke til kommentar
heder Skrevet 10. november 2003 Del Skrevet 10. november 2003 Det er ikke mulig å endre lengden på en array etter at den er opprettet. Avhengig av hva du skal med listen (arrayen) kan du bruke ArrayList, HashMap el. Ønsker du en dynamisk array bruk f.eks. ArrayList. Ønsker du å assosiere navn til elementene i listen (for enkle sok) bruk f.eks. HashMap. Lenke til kommentar
MailMan13 Skrevet 10. november 2003 Del Skrevet 10. november 2003 Et array har fast lengde, og kan ikke utvides. Enten må du opprette tabellen med tilstrekkelig antall plasser første gangen, eller bruke en ArrayList eller Vector. Edit: Oops, for sent ute... Lenke til kommentar
Neo Skrevet 17. november 2003 Del Skrevet 17. november 2003 Vanvittig upraktisk å opprette et array med 0 lengde. Dersom du insisterer på å bruke array ville jeg f.eks lagd et array med lengde 32, og sjekket om det var nok plass hver gang jeg skulle legge inn et tall. Da hadde det vært greit med en metode som doblet antall plasser i et array. Dette må da gjøres ved å lage et nytt array som er dobbelt så stort og kopiere alt innholdet i det gamle arrayet inn i dette. Til dette kan du blant annet bruke den innebygde funksjonen "system.arraycopy(....)". Lenke til kommentar
L03VIk Skrevet 17. november 2003 Del Skrevet 17. november 2003 Her er en løsning: la oss si du har tabellen "tabell1", med 3 plasser, og du vil ha 2 plasser til. //opprett en midlertidig tabell med 2 flere plasser for den utvidete tabellen: //eks: int[] tempTabell = new int[tabell1.length + 2]; //fyll temptabellen med verdiene i tabell1: for(int i = 0; i < tabell1.length; i++) tempTabell = tabell1; //Gi tempTabell navnet til den gamle tabellen: tabell1 = tempTabell; da vil du ha utvider tabell1 med 2 plasser, og likevel tatt vare på gamle data. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå