[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

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Sujets relatifs:

Leave a Replay

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