Weergegeven resultaten: 1 t/m 9 van 9
  1. #1
    Member Pudmeister's schermafbeelding
    Lid sinds
    20/08/11
    Locatie
    Liberty City
    Berichten
    828
    iTrader
    0

    Java: lengte van array aanpassen

    Stel: ik wil de lengte van een array aanpassen. Hoe zou dit moeten?

    Code:
    public static void main(String[] args){
    
    int []array = new int[3]; //Hier maak ik een array met 3 elementen
    
    //Er worden enkele waardes in gezet
    array[0] = 10;
    array[1] = 20;
    array[2] = 30;
    
    
    }
    Als ik nu nog meer waardes in de array wil zetten na deze code. Bijvoorbeeld als je op voorhand niet weet hoe lang de array moet zijn. Want als ik opnieuw array = new int[5] doe, zodat er nu 5 waardes kunnen worden opgeslagen, dan zijn de vorige waardes weg...

  2. #2
    Member blackrabbit's schermafbeelding
    Lid sinds
    25/07/02
    Locatie
    Wemmel
    Berichten
    1.133
    iTrader
    5 (100%)
    Dan moet je die oude waardes kopiŽren he..
    Of ArrayList gebruiken.

  3. #3
    Member forloRn_'s schermafbeelding
    Lid sinds
    23/11/03
    Locatie
    Landeurp
    Berichten
    1.736
    iTrader
    0
    Niks kopiŽren, gewoon .add() op een ArrayList of een LinkedList.

  4. #4
    Approved 9-lifer Cycloon's schermafbeelding
    Lid sinds
    17/01/04
    Locatie
    Melle
    Berichten
    9.798
    iTrader
    49 (100%)
    Citaat Oorspronkelijk geplaatst door forloRn_ Bekijk bericht
    Niks kopiŽren, gewoon .add() op een ArrayList of een LinkedList.
    Idd.

    Maar om toch eventjes technisch te worden, de implementatie van ArrayList gaat ook arrays kopiŽren wanneer er niet genoeg plaats is (dit gebeurt uiteraard intern en merk je niet). LinkedList heeft daar geen last van maar is sowieso een stukje zwaarder

  5. #5
    Member Pudmeister's schermafbeelding
    Lid sinds
    20/08/11
    Locatie
    Liberty City
    Berichten
    828
    iTrader
    0
    Zou iemand mijn voorbeeld kunnen aanvullen? Want ik weet niet hoe die ArrayList precies werkt...

  6. #6
    Approved 9-lifer NeverwinterX's schermafbeelding
    Lid sinds
    26/08/04
    Locatie
    Leuven
    Berichten
    912
    iTrader
    0
    Code:
    List<Integer> list = new ArrayList<Integer>();
    // of met Java 7: List<Integer> list = new ArrayList<>();
    list.add(10);
    list.add(20);
    list.add(30);
    enz
    ArrayList gebruikt op de achtergrond zelf een array en zal die zelf vergroten wanneer nodig (ie, er kan dus een vertraging optreden op het moment dat die wordt vergroot; in de meeste gevallen hoef je daar geen rekening mee te houden).

    Meer uitleg:
    http://docs.oracle.com/javase/tutori...aces/list.html
    http://docs.oracle.com/javase/tutori...ions/list.html
    http://docs.oracle.com/javase/7/docs...ArrayList.html

  7. #7
    Member blackrabbit's schermafbeelding
    Lid sinds
    25/07/02
    Locatie
    Wemmel
    Berichten
    1.133
    iTrader
    5 (100%)
    Citaat Oorspronkelijk geplaatst door forloRn_ Bekijk bericht
    Niks kopiŽren, gewoon .add() op een ArrayList of een LinkedList.
    Waarmee je zijn vraag dus helemaal negeert.

  8. #8
    Member grafzerkpisser's schermafbeelding
    Lid sinds
    27/09/11
    Locatie
    Antwerpen
    Berichten
    211
    iTrader
    9 (100%)
    Hou er wel rekening mee dat de elementen van een ArrayList van het type Object zijn. Je gaat deze dus eerst moeten casten vooraleer je de properties en methods ervan kan gebruiken. + Let ook op: in een ArrayList kan je om het even wat in steken --> kan dus fouten opleveren.

  9. #9
    Member forloRn_'s schermafbeelding
    Lid sinds
    23/11/03
    Locatie
    Landeurp
    Berichten
    1.736
    iTrader
    0
    Citaat Oorspronkelijk geplaatst door blackrabbit Bekijk bericht
    Waarmee je zijn vraag dus helemaal negeert.
    Het antwoord is: nee, je kunt de grenzen van een array niet aanpassen dus je moet een List gebruiken. Nu goed?

    Citaat Oorspronkelijk geplaatst door grafzerkpisser
    Hou er wel rekening mee dat de elementen van een ArrayList van het type Object zijn. Je gaat deze dus eerst moeten casten vooraleer je de properties en methods ervan kan gebruiken. + Let ook op: in een ArrayList kan je om het even wat in steken --> kan dus fouten opleveren.
    Als Java nog geen generics had ja, maar dat is ondertussen al wel meer dan 7 jaar het geval.

Discussie informatie

Users Browsing this Thread

Op dit moment bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •