Java写一个方法 分割list
时间: 2023-03-14 20:32:44 浏览: 142
我可以为你提供一个示例程序:
public static List <String> splitList(List<String> list,int n){
List<String> result = new ArrayList<>();
int length = list.size();
for(int i=0;i<length;i+=n){
List<String> sublist= list.subList(i,Math.min(length,i+n));
result.add(sublist);
}
return result;
}
相关问题
java list分割
Java中可以使用ListUtil或者Guava库中的Lists.partition方法来对List进行分割。这两种方法都可以将一个List分割为多个子List,并指定每个子List的大小。
使用ListUtil的splitList方法示例:
```java
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
list.add("g");
List<List<String>> slist = ListUtil.splitList(list, 3);
System.out.println(slist);
```
使用Guava库中的Lists.partition方法示例:
```java
List<Integer> integers = new ArrayList<>();
for (int i = 0; i < 19; i++) {
integers.add(i);
}
List<List<Integer>> partition = Lists.partition(integers, 4);
partition.forEach(list -> {
System.out.println(list.toString() + " 数量:" + list.size());
});
```
在对源List进行业务操作后,再次对分割后的子List进行操作时,结果会反映出源List的变化。在上述代码中,我们向integers添加了三个新元素(18、19、20),然后输出了分割后的partition结果,并观察到新元素已经反映在分割后的子List中。
用 java 写:将一个List<Integer>排序后分割,连续的分成一组
您好,以下是将一个 `List<Integer>` 排序后分割,连续的分成一组的 Java 代码:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1, 3, 2, 6, 5, 7, 8, 9, 10));
list.sort(Integer::compareTo);
List<List<Integer>> result = new ArrayList<>();
List<Integer> temp = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if (temp.isEmpty() || list.get(i) == temp.get(temp.size() - 1) + 1) {
temp.add(list.get(i));
} else {
result.add(temp);
temp = new ArrayList<>();
temp.add(list.get(i));
}
}
result.add(temp);
System.out.println(result);
}
}
```
首先创建一个 `List<Integer>` 对象并初始化,然后使用 `sort` 方法对其进行排序。接着创建 `List<List<Integer>>` 对象用来存储分割后的结果,以及一个 `List<Integer>` 用来存储当前连续的一组数。然后使用 `for` 循环遍历排序后的列表,如果当前元素是连续的,则将其加入到 `temp` 列表中,否则将 `temp` 列表加入到 `result` 列表中,并重新创建一个空的 `temp` 列表来存储下一个连续的一组数。循环结束后,将最后一个 `temp` 列表加入到 `result` 列表中即可。
输出结果为:`[[1, 2, 3], [5, 6, 7, 8, 9, 10]]`
阅读全文