Obtenir une sublist de ArrayList en Java
Pour obtenir une portion de la liste ArrayList en Java, utilisez la méthode
subList() de la classe ArrayList.
List subList(int fromIndex, int toIndex)fromIndex est inclut et
toIndex exclut (
[fromIndex, toIndex[ ). Cette méthode retourne un object de type list donc, pour stocker la sous-liste dans un autre ArrayList, on a besoin de créer cette ArrayList à partir de List:
new ArrayList(input.subList(fromIndex, toIndex)) . Par contre si on stocke la sous-liste obtenue dans une List alors, il n'y a aucun soucis, comme dans l'exemple.
import java.util.ArrayList;
import java.util.List;
public class ArrayListSublist {
public static void main(String[] args) {
// Créer un ArrayList<String>
ArrayList<String> aList = new ArrayList<String>();
//ajouter des chaines de caractères à ArrayList
aList.add("1");
aList.add("2");
aList.add("3");
aList.add("4");
aList.add("5");
System.out.println("ArrayList");
for(String e:aList)
System.out.println(e);
List list = aList.subList(1, 4);
System.out.println("ArrayList ");
for(int i=0; i< list.size();i++)
System.out.println(list.get(i));
}
}
Exécution:
ArrayList
1
2
3
4
5
ArrayList
2
3
4
Remaque:
La méthode subList() lève l'exception
IndexOutOfBoundsException si l'indice spécifié est inférieur à 0 ou dépasse la taille.
IllegalArgumentException si l'indice de début (fromIndex) est plus grand que l'indice de la fin (toIndex), en d'autres termes
fromIndex > toIndex.