J'ai deux liste2. Je stocke des éléments dans une liste et dans la deuxième liste, je stocke des chiffres INT que je considère comme index.
Je veux supprimer les éléments de la liste des éléments avec tous les index. p>
4 Réponses :
Vous devez ajouter à la fin:
Collections.reverse(indexes); for(Integer index : indexes){ items.remove((int)index); }
solution à l'aide de l'API JAVA Stream,
IntStream.range(0, items.size()).filter(i -> !indexes.contains(i)).mapToObj(items::get) .collect(Collectors.toList())
Shaunak Patel ... Merci beaucoup pour prendre le temps de le faire.
public static void filter(List<String> list, List<Integer> indexesToRemove){ Collections.reverse(indexesToRemove); for (Integer indexToRemove : indexesToRemove) { list.remove((int)indexToRemove); } } public static void main(String[] args) { ArrayList<String> items = new ArrayList<String>(); ArrayList<Integer> indexes = new ArrayList<Integer>(); items.add("a"); items.add("b"); // should be removed items.add("c"); items.add("d"); // should be removed items.add("e"); items.add("f"); // should be removed items.add("g"); items.add("h"); indexes.add(1); indexes.add(3); indexes.add(5); filter(items, indexes); System.out.println(items); } Here You go. Remove from arrays starts of biggest index :)
Pour quiconque était coincé et atterri sur cette page, mais vos indices n'étaient pas une liste Remarque: itemindices strong> représente les indices des positions de la liste, vous souhaitez supprimer. Uricache strong> n'est pas nécessaire, je l'ai utilisé dans mon code pour stocker une liste des éléments supprimés (qui étaient URI, à la manière). Mediafeuris fort> est la liste que vous souhaitez supprimer ces éléments avec des indices spécifiés par le tableau itemindices forte> p> p>
Veuillez lire Comment poser une bonne question