Page 1 of 2 12 Last
  1. #1
    LilWeezy's Avatar
    Registered
    22/07/11
    Location
    Bruxelles
    Posts
    45
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0

    ArrayList probleem

    Dag iedereen,

    Ik zit vast bij de methode verwijderItem in een arrayList.

    Code:
    public void verwijderItem(int index)throws IndexOutOfBoundsException
    {
        if(index < 0 || index > mijnPersonenLijst.size())
        {
            throw new IndexOutOfBoundsException("Er is een verkeerde index lengte meegegeven! Voor een correct lengte in!");
            		
        }else {
            for(int i = 0; i<mijnPersonenLijst.size();i++)
            {
                if(mijnPersonenLijst.get(i) != null )
                {
                    mijnPersonenLijst.remove(index);    		}
            }
        }
    }
    --> Probleem is dat deze methode niet correct werkt. Kan iemand deze code optimaliseren?

    Alvast bedankt!
    Last edited by Fraggie; 22-03-2012 at 18:46. Reason: Formatting
    no votes  

  2. #2
    Kemblin's Avatar
    Registered
    14/05/03
    Location
    Schoten
    Posts
    812
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/7
    vrij nutteloze methode als je het mij vraagt ma soit :P

    Code:
    public void verwijderItem(int index) throws IndexOutOfBoundsException {
    		try {
    			mijnPersonenLijst.remove(index);
    		} catch (IndexOutOfBoundsException e) {
    			throw new IndexOutOfBoundsException(
    					"Er is een verkeerde index lengte meegegeven! Voor een correct lengte in!");
    		}
    	}
    there you go
    no votes  

  3. #3
    Moto's Avatar
    Registered
    17/07/02
    Location
    Wilrijk
    Posts
    1,994
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    9/16
    --> Probleem is dat deze methode niet correct werkt.
    Het probleem is 2-delig
    1) Deze methode HEEFT GEEN ENKEL NUT, GEEN NUT = BROL
    2) Stop met die nederlandse code
    no votes  

  4. #4
    LilWeezy's Avatar
    Registered
    22/07/11
    Location
    Bruxelles
    Posts
    45
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Dank u voor de reacties!

    Nu werkt het wel. En sorry voor de misschien "onnuttige code" we moeten dit doen voor school om het arrayList gebeuren onder de knie te krijgen..

    Nog kleine vraagjes: bij je catch staat : IndexOutOfBoundsException e
    Waarvoor dient die "e"

    Thanks!
    no votes  

  5. #5
    Kemblin's Avatar
    Registered
    14/05/03
    Location
    Schoten
    Posts
    812
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/7
    die "e" is de referentie naar de exceptie die gegooid wordt, op die manier kunt ge dingen als

    Code:
    System.out.println(e.getMessage());
    e.printStackTrace();
    binnen de catch doen. Maar tbh u methode is echt nutteloos, ge kunt evengoed rechtstreeks de methode "remove" oproepen ipv deze nog eens in een andere methode te omwikkelen.
    there you go
    no votes  

  6. #6
    MAXXUR's Avatar
    Registered
    18/07/03
    Location
    Limburg
    Posts
    3,733
    iTrader
    27 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/13
    Ziet ge in hoe uw eerder geschreven for-lus op nix slaat? Da lijkt mij belangrijker dan nu tevreden te zijn met "het werkt" - leer uit uw fouten!
    no votes  

  7. #7
    LilWeezy's Avatar
    Registered
    22/07/11
    Location
    Bruxelles
    Posts
    45
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Okéé thanks, Ik heb volgende week hier een test van.

    We moeten 4 dingen kunnen toevoegen, verwijderen, opzoeken, vervangen en dit bij ArrayList en LinkedList.

    Soms nog wat tips ? Maar normaal gezien als je de verschillende methoden kunt schrijven moet dit wel gaan zeker .

    Toch al bedankt voor de hulp !
    no votes  

  8. #8
    blackrabbit's Avatar
    Registered
    25/07/02
    Location
    Brussel
    Posts
    1,001
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/2
    Op welke school zit ge?
    no votes  

  9. #9
    Jerre Muesli's Avatar
    Registered
    08/09/02
    Location
    -
    Posts
    2,044
    iTrader
    9 (100%)
    Mentioned
    0 Post(s)
    Reputation
    3/6
    Nen tip bij lists; verwijder geen items terwijl ge erover loopt met bvb een shorthand for loop want dan krijgde exceptions. Gebruik hiervoor Iterators
    no votes  

  10. #10
    LilWeezy's Avatar
    Registered
    22/07/11
    Location
    Bruxelles
    Posts
    45
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    oke !
    Tot nu toe ben ik met alle methodes mee maar ik blijf wat vast zitten bij de contains methode. Zou iemand eventueel kort kunnen uitleggen hoe je dit simpel doet?

    Op de java API staat dat het moet met: public boolean contains(Object elem)

    Ik heb dit tot nu toe al gemaakt maar ik heb de ingebouwde contains niet gebruik dus is dit zoiso fout. :
    Code:
     public boolean contains (Persoon element) throws IllegalArgumentException
    {
        boolean found = false;
            	
        if( element == null)
        {
            throw new IllegalArgumentException();	
        }
            	
        for(int i =0; i<mijnPersonenLijst.size();i++)
        {
            if(mijnPersonenLijst.get(i).equals(element))
            {
                found = true;
            }
        }
        return found;
    }
    Het kan zijn dat er domme fouten in staan maar ik ben dan ook een eerste jaars student .
    Last edited by Fraggie; 22-03-2012 at 18:48. Reason: formatting
    no votes  

  11. #11
    SideShow's Avatar
    Registered
    21/08/02
    Location
    Roeselare
    Posts
    4,474
    iTrader
    15 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/35
    Er is een verkeerde index lengte meegegeven
    een index is geen lengte

    ik wou ook een bijdrage leveren aan de thread
    no votes  

  12. #12

    Registered
    18/09/09
    Location
    Edegem
    Posts
    4
    iTrader
    0
    Mentioned
    0 Post(s)
    Moet je zelf het werken van een arraylist nabouwen of mag je de java implementatie gebruiken? Deze bevat al de methodes die je zoekt en zouden je veel tijd besparen.

    Code:
    Person ikke = new Person("ikke");
    List<Person> personsList = new ArrayList<Person>();
    
    personsList.add(ikke);
    
    personsList.contains(ikke); // true
    
    personsList.remove(ikke);
    
    personsList.contains(ikke); // false
    no votes  

  13. #13
    LilWeezy's Avatar
    Registered
    22/07/11
    Location
    Bruxelles
    Posts
    45
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    We mogen de java implementatie gebruiken maar moesten eerst elke implementatie nabouwen.

    Maar ik snap eigenlijk niet goed hoe die contains checkt of het "element" overeenkomt of niet?
    no votes  

  14. #14

    Registered
    18/09/09
    Location
    Edegem
    Posts
    4
    iTrader
    0
    Mentioned
    0 Post(s)
    De contains methode van een ArrayList gaat alle elementen checken via de "boolean equals(Object o)" methode. Dat is een methode die elk object heeft en standaard het adres in het geheugen zal vergelijken om te kijken of 2 objecten gelijk zijn. Het is echter veelal aangewezen deze te overriden, maar ik denk niet dat dat tot de oefening hoort.

    De java Arraylist werkt achterliggend met een gewone array met een default grootte, je kan met de constructor wel een andere startgrootte meegeven als je al ongeveer weet hoe groot je list zal worden.

    Code:
    Person[] persons = new Person[10]; // Default size 
    
    public boolean contains(Person inP){
         for(Person p : persons){
              if(p.equals(inP)){
                   return true;
              }           
         }
         return false;
    }
    no votes  

  15. #15
    LilWeezy's Avatar
    Registered
    22/07/11
    Location
    Bruxelles
    Posts
    45
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Ok ik snap het al wat beter maar hoe moet ik het dan aanpakken als ik met de java implementatie "Contains" wil werken? Dus niet het nabootsen. Sorry maar da blijft me wat onduidelijk
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in