我正在尝试拆分数组列表中的元素。 例如我有一个 arrayList 就像
List <String> elements = new ArrayList<String>();
elements //["frnec","fdct","logic","mastro","seloger"]
元素的大小应该是动态的......
List<List<String>> splittedlists = null;
我想分割元素,例如["frnec"],["fdct",logic"],["mastro","seloger"]。
splittedlists //[["frnec"] ,["fdct",logic"],["mastro", "seloger"]].
但是新的splittedlists
的大小不应超过4,基于此我必须切割元素
我有很多代码来分割列表。但我不知道如何设置'splittedlists'的最大大小。
但它会通过设置吐出元素的目标大小来分割
public static <T extends Object> List<List<T>> split(List<T> list, int targetSize) {
List<List<T>> lists = new ArrayList<List<T>>();
for (int i = 0; i < list.size(); i += targetSize) {
lists.add(list.subList(i, Math.min(i + targetSize, list.size())));
}
return lists;
}
我的要求是通过设置splittedlists
的最大数组大小(此处为4
)来拆分列表中的元素
如果元素是 //["frnec","fdct"] 我想拆分为 ["frnec"], ["fdct"]
如果元素是 //[0, 1, 2, 3, 4, 8, 6]
我必须在不超过新数组大小的情况下进行拆分 4
就像
[[0,1],[2,3],[4,8],[6]]
最佳答案
这是我的答案..我猜你能理解我在做什么..
List<String> list = new ArrayList<>();
for (int i = 1; i < 11; i++) {
list.add(i+"");
}
List<List<String>> lists = new ArrayList<>();
int x = list.size()/4;
int y = list.size()%4;
int j = 0;
for (int i = 0; i < list.size(); i=j) {
j = i+x;
if(y>0){
j++;
y--;
}
lists.add(list.subList(i, j));
}
System.out.println(list);
System.out.println(lists);
关于java - 分割数组列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34236338/