常用lambda写法整理

将list输出为逗号拼接的字符串(使用String的API):

List cities = Arrays.asList("Milan", 
                                    "London", 
                                    "New York", 
                                    "San Francisco");
String citiesCommaSeparated = String.join(",", cities);
System.out.println(citiesCommaSeparated);
//Output: Milan,London,New York,San Francisco

将list输出为逗号拼接的字符串(Lambda写法):

String citiesCommaSeparated = cities.stream()
                                    .collect(Collectors.joining(","));
System.out.println(citiesCommaSeparated);
//Output: Milan,London,New York,San Francisco

另外Guava里面也有类似的写法,比lambda出现的更早,在java8以下可以使用Guava中提供的API。

利用stream().map()处理List,并给另外一个List赋值:

List list1 = Lists.newArrayList();
        List list2 = Lists.newArrayList();
        list1.add("1");
        list1.add("2");
        list1.add("3");
 
        list2 = list1.stream().map(string -> {
            return "stream().map()处理之后:" + string;
        }).collect(Collectors.toList());
        
        list2.stream().forEach(string -> {
            System.out.println(string);
        });
运行结果:
stream().map()处理之后:1
stream().map()处理之后:2
stream().map()处理之后:3
 

利用stream().filter()处理List,对该List进行过滤处理:


List list1 = Lists.newArrayList();
        List list2 = Lists.newArrayList();
        list1.add("1");
        list1.add("1");
        list1.add("2");
        list1.add("3");
 
        list2 = list1.stream().filter(s -> !s.equals("1")).collect(Collectors.toList());
        System.out.println(list2.toString());
运行结果:
[2, 3]
 

 

你可能感兴趣的:(java)