import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class StreamMapDistinctExample { public static void main(String[] args) { // 原始数据列表 List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Alice", "David", "Charlie"); //...
out.print("distinct去重后:"); out.println(objectMapper.writeValueAsString(studentList)); // 这里我们引入了两个静态方法,以及通过 TreeSet<> 来达到获取不同元素的效果 // 1. import static java.util.stream.Collectors.collectingAndThen; // 2. import static java.util.stream.Collectors.toCollection; ...
简介:④. map Function⑤. limit 和 skip⑥. concat 、distinct ④. map Function ①. 如果需要将流中的元素映射到另一个流中,可以使用map方法,方法签名: <R> Stream<R> map(Function<? super T, ? extends R> mapper); ②. 该接口需要一个Function函数式接口,可以将当前流中的T类型数据转换为另一种R...
import java.util.stream.Stream; public class Demo { public static void main(String[] args) { Stream<String> original = Stream.of("11","22","33"); //Map可以将一种类型的流转换成另一种类型的流 //将Stream流中的字符串转成Integer //Stream<Integer> stream = original.map((String s)->{...
distinct:筛选,通过流所生成的元素的hashCode和equals去重 映射: map:接收一个lambda,将元素转换成其他形式或提取信息,接收一个函数作为参数,该函数会被应用到每一个元素上,并将其映射成一个新的元素 flatMap:接收一个函数作为参数,将其中的每个值都替换成另一个流,然后把所有流连接成一个流 ...
Distinct Numbers: [1,2,3,4,5,6,7] 在这个示例中,我们使用distinct方法从包含重复整数的列表中删除了重复的值,并得到了一个包含唯一整数的列表。 示例代码二 import java.util.Arrays; import java.util.List; import java.util.stream.Collectors;publicclassDistinctExample {publicstaticvoidmain(String[] args...
("Alice",30)// 重复的对象);List<Person>uniquePeople=people.stream().distinct()// 需要Person类正确实现equals和hashCode.collect(Collectors.toList());uniquePeople.forEach(System.out::println);}}classPerson{privateString name;privateint age;publicPerson(String name,int age){this.name=name;this....
map接收一个函数参数,map操作会将集合当中的每一个元素生成一个新的元素。也就是在城市的名称后面拼接上中国。 长沙中国 岳阳中国 南京中国 北京中国 上海中国 中间操作符 distinct 去重 List<City> distinctCityList = getCityList().stream().filter(city -> "上海".equals(city.getName())).distinct().co...
我们首先创建一个方法作为 Stream.filter() 的参数,其返回类型为 Predicate,原理就是判断一个元素能否加入到 Set 中去,代码如下: private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Set<Object> seen = ConcurrentHashMap.newKeySet(); return t -> seen.add(keyExtract...
("Charlie",22));// 按姓名去重,保留年龄最小的Map<String,Person>personMap=people.stream().collect(Collectors.toMap(Person::getName,Function.identity(),(existing,replacement)->existing.getAge()<replacement.getAge()?existing:replacement));System.out.println("Distinct People: "+personMap.values())...