Comment pouvez-vous filtrer quelque chose d'une Java ArrayList comme si vous avez :
- Comment vas-tu
- Comment ça va
- Joe
- Mike
Et le filtre est "Comment" il supprimera Joe et Mike.
Comment pouvez-vous filtrer quelque chose d'une Java ArrayList comme si vous avez :
Et le filtre est "Comment" il supprimera Joe et Mike.
La meilleure façon est probablement d'utiliser la goyave
List<String> list = new ArrayList<String>();
list.add("How are you");
list.add("How you doing");
list.add("Joe");
list.add("Mike");
Collection<String> filtered = Collections2.filter(list,
Predicates.containsPattern("How"));
print(filtered);
impressions
How are you
How you doing
Si vous souhaitez obtenir la collection filtrée sous forme de liste, vous pouvez l'utiliser (également à partir de Guava):
List<String> filteredList = Lists.newArrayList(Collections2.filter(
list, Predicates.containsPattern("How")));
Parcourez la liste et vérifiez si contient votre chaîne "Comment" et si elle le fait, supprimez-la. Vous pouvez utiliser le code suivant :
// need to construct a new ArrayList otherwise remove operation will not be supported
List<String> list = new ArrayList<String>(Arrays.asList(new String[]
{"How are you?", "How you doing?","Joe", "Mike"}));
System.out.println("List Before: " + list);
for (Iterator<String> it=list.iterator(); it.hasNext();) {
if (!it.next().contains("How"))
it.remove(); // NOTE: Iterator's remove method, not ArrayList's, is used.
}
System.out.println("List After: " + list);
SORTIR:
List Before: [How are you?, How you doing?, Joe, Mike]
List After: [How are you?, How you doing?]
écrivez vous-même une fonction de filtre
public List<T> filter(Predicate<T> criteria, List<T> list) {
return list.stream().filter(criteria).collect(Collectors.<T>toList());
}
Et puis utiliser
list = new Test().filter(x -> x > 2, list);
C'est la version la plus soignée de Java, mais nécessite JDK 1.8 pour prendre en charge le calcul lambda
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.