[英]Populate multiple lists from one list
我如何從一個列表中填充三個arrayLists,即從index1到lista1的值,從index2到lista2的值,從index3到lista3的值,從index4到lista1的值等等?
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String> lista1 = new ArrayList<String>();
ArrayList<String> lista2 = new ArrayList<String>();
ArrayList<String> lista3 = new ArrayList<String>();
sh.forEach(row -> {
row.forEach(cell -> {
String cellvalue = dataFormatter.formatCellValue(cell);
lista.add(cellvalue);
});
});
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String> lista1 = new ArrayList<String>();
ArrayList<String> lista2 = new ArrayList<String>();
ArrayList<String> lista3 = new ArrayList<String>();
ArrayList<String>[] newLists = new ArrayList[]{lista1, lista2, lista3};
for (int i=0 ; i< lista.size(); i ++ ){
newLists[i % 3].add(lista.get(i));
}
您可以將三個列表添加到三元素數組中,並使用傳統的for循環對其進行迭代。 這是修改后的代碼
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String>[] lists = new ArrayList[3];
lists[0] = new ArrayList<String>();
lists[1] = new ArrayList<String>();
lists[2] = new ArrayList<String>();
for(int i = 0; i < lista.size(); i++){
lists[i % lists.length].add(lista.get(i));
}
Java8 +流API,可以嘗試一下
List<String> lista = Arrays.asList("A","B","C","D","E");
List<String> list1 = lista.stream()
.filter(x -> lista.indexOf(x) % 3 == 0)
.collect(Collectors.toList());
List<String> list2 = lista.stream()
.filter(x -> lista.indexOf(x) % 3 == 1)
.collect(Collectors.toList());
List<String> list3 = lista.stream()
.filter(x -> lista.indexOf(x) % 3 == 2)
.collect(Collectors.toList());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.