Gå til innhold

utvidbar datastruktur, like rask som int[][]


Anbefalte innlegg

Jeg har en int[m][n] array som iblant blir fylt opp, og må utvides til f.eks int[m*2][n] (hvor m er ca 10^4, n er 10)

 

Kopieringen av data fra int[m][n] arrayen til int[m*2][n] arrayen tar for mye tid.

 

Hvilken utvidbar datastruktur kan jeg bruke for dette?

Hastigheten på å legge inn og hente data er viktig, helst skal det gå like fort som å bruke en int-array.

Endret av icaruz
Lenke til kommentar
Videoannonse
Annonse
Jeg har en int[m][n] array som iblant blir fylt opp,  og må utvides til f.eks int[m*2][n] (hvor m er ca 10^4, n er 10)

 

Kopieringen av data fra int[m][n] arrayen til int[m*2][n] arrayen tar for mye tid.

 

Hvilken utvidbar datastruktur kan jeg bruke for dette?

Hastigheten på å legge inn og hente data er viktig, helst skal det gå like fort som å bruke en int-array.

6284530[/snapback]

 

Linked list - legge inn

ArrayList - hente ut/legge inn

 

Noen forslag iallfall (merkelig at jeg ikke kommer på mer, to dager før eksamen i datatrukturer :(

Lenke til kommentar

Dersom n er konstant, så kan kanskje en Hashtable brukes?

Om grunnen til en utvidelse fra m til m*2 er at det skal inn nye elementer i m..(m*2)-1, så burde det jo gå ganske fint.

Eller?

 

Edit: Bruke en int som key, og en int[n] som value.

Endret av Paull
Lenke til kommentar

System.arraycopy er litt raskere, og jeg bruker det.

 

-----------------------------------------

int n = 50000;

int noftr=0; //number of triangles

float[][] triangles=new float[n][10];

..

..

if(noftr==triangles.length){

float[][] tri=new float[triangles.length*2][10];

System.arraycopy(triangles, 0, tri, 0, triangles.length);

triangles=tri;

}

Endret av icaruz
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...