Lists.partition
时间: 2023-07-01 13:18:09 浏览: 68
`Lists.partition` 是 Google Guava 中提供的一个方法,用于将一个列表按照指定大小分成若干个子列表。
方法签名如下:
```java
public static <T> List<List<T>> partition(List<T> list, int size)
```
其中,`list` 表示要进行分组的列表,`size` 表示每个子列表的大小。返回值是一个 `List<List<T>>` 类型的列表,其中每个元素都是原始列表中的若干个元素组成的子列表。
需要注意的是,最后一个子列表的大小可能会小于指定的 `size`。如果 `size` 小于等于 0,或者 `list` 为 null,都会抛出 `IllegalArgumentException` 异常。
例如,假设我们有一个包含 10 个元素的列表:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
```
我们可以使用 `Lists.partition` 方法将列表分成大小为 3 的子列表:
```java
List<List<Integer>> subLists = Lists.partition(list, 3);
```
得到的 `subLists` 列表包含了 4 个子列表:
```
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
```
最后一个子列表只包含了一个元素。
相关问题
Lists.partition 使用
Lists.partition 是 Google Guava 库中提供的一个方法,用于将一个 List 集合分割成多个指定大小的小集合。使用该方法可以方便地将一个大的集合分割成多个小集合,以便于进行批量操作。
下面是使用 Lists.partition 方法的示例代码:
```java
import com.google.common.collect.Lists;
import java.util.List;
public class PartitionExample {
public static void main(String[] args) {
List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<List<Integer>> partitions = Lists.partition(list, 3);
for (List<Integer> partition : partitions) {
System.out.println(partition);
}
}
}
```
输出结果为:
```
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[10]
```
上述代码中,我们首先创建了一个包含 10 个元素的 List 集合,然后使用 Lists.partition 方法将该集合分割成每个小集合包含 3 个元素的若干个小集合。最后,我们遍历每个小集合并输出其内容。
Java中的Lists.partition
`Lists.partition` 是 Google Guava 库中的一个静态方法,它可以将一个列表分成两个子列表,一个子列表包含满足特定条件的元素,另一个子列表包含不满足条件的元素。这个方法通常用于数据处理和筛选。
下面是一个示例代码:
```java
import com.google.common.collect.Lists;
import java.util.List;
public class PartitionDemo {
public static void main(String[] args) {
List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 6);
List<List<Integer>> result = Lists.partition(list, 2);
System.out.println(result); // [[1, 2], [3, 4], [5, 6]]
}
}
```
这个示例中,我们使用 `Lists.partition` 将一个包含 6 个元素的列表分成了 3 个子列表,每个子列表包含 2 个元素。`Lists.partition` 方法接受两个参数,第一个参数是要分割的列表,第二个参数是每个子列表的大小。返回一个包含子列表的列表。
除了按照大小分割,`Lists.partition` 还可以接受一个 `Predicate` 参数,用于对列表中的元素进行判断。如果元素满足条件,就将其添加到 `true_list` 子列表中,否则将其添加到 `false_list` 子列表中。最后返回一个包含两个子列表的列表。
例如,我们可以使用以下代码将一个列表分成奇数和偶数两个子列表:
```java
import com.google.common.collect.Lists;
import java.util.List;
public class PartitionDemo {
public static void main(String[] args) {
List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5, 6);
List<List<Integer>> result = Lists.partition(list, num -> num % 2 == 0);
System.out.println(result); // [[2, 4, 6], [1, 3, 5]]
}
}
```
在上面的示例中,`Lists.partition` 方法接受一个 `Predicate` 参数,用于判断一个数字是否为偶数,`Lists.partition` 方法将 `list` 列表分成了两个子列表,一个包含偶数,另一个包含奇数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)