Java中的Lists.partition
时间: 2023-11-30 19:17:31 浏览: 104
`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` 列表分成了两个子列表,一个包含偶数,另一个包含奇数。
阅读全文