java8分割list
时间: 2023-05-04 13:02:05 浏览: 725
Java 8提供了一些新的分割List的方法。在Java 8中,我们可以使用Stream API和Lambda表达式来实现分割List的操作。
首先,我们可以使用Stream API的新方法partitioningBy()来将List根据某个条件分成两个子集,这两个子集都是List类型。例如,我们可以通过以下代码将一个包含所有整数的List分为两个子集,其中一个子集包含所有偶数,另一个子集包含所有奇数:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Map<Boolean, List<Integer>> partionedNumbers = numbers.stream()
.collect(Collectors.partitioningBy(n -> n % 2 == 0));
List<Integer> evenNumbers = partionedNumbers.get(true);
List<Integer> oddNumbers = partionedNumbers.get(false);
其次,我们还可以使用Stream API的新方法groupingBy()来将List根据某个条件分成多个子集,每个子集都是List类型。例如,我们可以通过以下代码将一个包含若干个字符串的List根据它们的长度分为多个子集:
List<String> words = Arrays.asList("apple", "banana", "pear", "peach", "grape", "watermelon");
Map<Integer, List<String>> groupedWords = words.stream()
.collect(Collectors.groupingBy(String::length));
List<String> threeLetterWords = groupedWords.get(3);
List<String> fourLetterWords = groupedWords.get(4);
List<String> fiveLetterWords = groupedWords.get(5);
使用以上两种方法,我们可以非常便捷地对List进行分割操作,从而实现更高效、更灵活的数据处理和分析。
阅读全文