Si j'ai une donnée List<List<String>>
en Java, je peux obtenir la longueur de la première liste via le code:
int lengthData = data.get(0).size();
Mais comment puis-je obtenir le nombre de listes dans la structure sans parcourir la liste des listes pour le savoir?
Peut-être que je suis un peu incertain. J'ai la structure:
List<List<String>> data
Et je vois que:
int i = data.size();
Sera égal à 1 car il s'agit de la liste racine. Ce que je veux savoir, c'est combien il y a de sous-listes. Traversée de la structure comme ceci:
for (List<String> l : data) {
total ++;
}
Ne me donne qu'un résultat de 1 que je trouve étrange.
J'ai des données de la forme:
List 1 ==> 1, 2, 3, 4
List 2 ==> 3, 8. 9, 1
Et ainsi de suite où ce sont des sous-listes de la liste racine.
Juste utiliser
int listCount = data.size();
Cela vous indique combien de listes il y en a (en supposant qu'aucune ne soit nulle). Si vous voulez savoir combien de chaînes il y en a, vous devrez itérer:
int total = 0;
for (List<String> sublist : data) {
// TODO: Null checking
total += sublist.size();
}
// total is now the total number of strings
Java 8
import Java.util.Arrays;
import Java.util.List;
import Java.util.ArrayList;
public class HelloWorld{
public static void main(String []args){
List<List<String>> stringListList = new ArrayList<>();
stringListList.add(Arrays.asList(new String[] {"(0,0)", "(0,1)"} ));
stringListList.add(Arrays.asList(new String[] {"(1,0)", "(1,1)", "(1,2)"} ));
stringListList.add(Arrays.asList(new String[] {"(2,0)", "(2,1)"} ));
int count=stringListList.stream().mapToInt(i -> i.size()).sum();
System.out.println("stringListList count: "+count);
}
}