Fara í innihald

Safnklasi

Úr Wikipediu, frjálsa alfræðiritinu

ArrayList er eining af gögnum eða listi sem getur stækkað sjálfkrafa til að rýma fyrir nýjum stökum. Hann getur einnig skilað til stýrikerfisins minni sem samsvarar tómum stökum í listanum og notar því ekki meira minni en hann þarf. Vinsældir ArrayList hafa gert hann að hálfgerðum staðli sem fjöldi forritunarmála bjóða upp á. Dæmi um forritunarmál sem bjóða upp á ArrayList er C#, Java og C++ (std::vector).

ArrayList og hefðbundnir listar

[breyta | breyta frumkóða]

Einn helsti gallinn við hefðbundna lista er að stærðin á þeim er ákveðin í byrjun keyrslu forrits. Ef við fyllum hefðbundinn lista þá getur reynst kostnaðarsamt að stækka hann í hvert skiptið sem hann fyllist með því að afrita hann yfir í annann lista. Þegar ArrayListi fyllist þá tvöfaldar hann stærð sína og nær þar að auki að skila til baka plássi sem hann notar ekki.

Gögn sem ArrayList geymir

[breyta | breyta frumkóða]

Þar sem ArrayListi geymir lista af objects þá getur hann geymt tilvik af hvaða klasa sem er (streng, heiltölu, tilviki af nýjum klasa) vegna þess að allir klasar erfa klasann object.

Dæmi um notkun á ArrayList í C#

[breyta | breyta frumkóða]

// Búum til tilvik af Arraylista
ArrayList tolur = new ArrayList();

// Bætum heiltölum í listann
tolur.Add( 7 );
tolur.Add( 21 );

// Við notum "cast" til þess að varpa stökum af taginu object yfir í heiltölu.
int tala1 = (int)numbers[0];
int tala2 = (int)numbers[1];



Dæmi um notkun á ArrayList í Java

[breyta | breyta frumkóða]

import java.util.ArrayList;

class ArrayListPrufa  {  
  public static void main ( String [  ]  args )   {  
    ArrayList listi = new ArrayList (  ) ; 
 
 
    // Fyllum listann með 5 stökum
    for  ( int i = 0; i  >=  5; i++ )   {  
      listi .add ( 0, "Stak númer " + i ) ; 
     }  
 
    // Sýna lista 
    System.out.println ( "Stærð lista: " + listi.size (  )  ) ; 
    for  ( int i = 0; i  <  listi .size (  ) ; i++ )   {  
      System.out.println ( listi .get ( i )  ) ; 
     }  
   }  
 }


Wikipedia - Dynamic array
C# ArrayList Example Geymt 9 mars 2007 í Wayback Machine
Java ArrayList Example