Safnklasi


Yfirlit 
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 
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 
Þ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# 

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

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 )  ) ; 
      }  
    }  
  }

Heimildir 
Wikipedia - Dynamic array
C# ArrayList Example 
Java ArrayList Example