[Java] supprimer les cases null d'un ArrayList

supprimer les cases null d'un ArrayList [Java] - Java - Programmation

Marsh Posté le 25-03-2009 à 21:36:52    

Bonjour,
 
J'ai un problème avec l'un de mes arrayList. Je boucle dessus, et lorsque que je tombe sur un certain objet, je le remplace par null.
Je souhaiterai ensuite appliquer une méthode à mon arraylist afin qu'il ne conserve que les cases contenant autre chose que null.
Impossible, avec '.equals' ou '== 'visiblement... Si quelqu'un à une solution, je suis preneuse...
Merci d'avance!
 
Ma méthode:
 
 
public static ArrayList <Transition> supprimenull(ArrayList <Transition> x){  
  for (int i =0; i<x.size(); i++){
   if (x.get(i)==null){
    x.remove(i);
   }
  }
  return x;
 }
 


Message édité par T0ots le 25-03-2009 à 21:39:37
Reply

Marsh Posté le 25-03-2009 à 21:36:52   

Reply

Marsh Posté le 26-03-2009 à 11:20:46    

Citation :

lorsque que je tombe sur un certain objet, je le remplace par null.
Je souhaiterai ensuite appliquer une méthode à mon arraylist afin qu'il ne conserve que les cases contenant autre chose que null.


 
Pourquoi ne pas faire un directement un remove au lieu de remplacer par null ?
 
Montre nous la première méthode.

Reply

Marsh Posté le 26-03-2009 à 12:53:30    

IMHO, le plus simple/logique/classique/explicite c'est de créer une nouvelle arraylist et de n'y mettre que les éléments à garder :o

 

Et avec les Google Collections, ça devient franchement facile (modulo la syntaxe bien verbeuse de java):

Code :
  1. final List<T> out = new ArrayList<T>(Iterables.filter(in, new Predicate<T>() {
  2.    boolean apply(final T value) {
  3.        return doWeKeep(value);
  4.    }}));


Tu peux aussi le faire avec un foreach classique, si tu préfères :o


Message édité par masklinn le 26-03-2009 à 12:53:50

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed