语法糖

Lambda表达式是java8新加的语法糖

当一个接口中,只有一个抽象方法的时候,可以使用Lambda表达式。

可以用@FunCtionalInterface 注解判断下面的接口能不能实现Lambda表达式,使用Lambda可以使代码更简洁例如事件的监听

btn.addActionListener(e->JOptionPane.shiowMessageDialog(null,""))

 

Stream:

//stream 专门用来简单循环集合的 
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");


//把数组转换为List
String [] strs = {"aaa","bbb","ccc","ddd"};
List<String> list = Arrays.asList(strs);

//把集合转换为数组
//String [] ss = list.toArray(new String[list.size()]);

List<String> ss = Arrays.asList("aaa","","abd","dfd","","dfdg","","ttt");

for (String string : ss) {
System.out.println(string);
}

List<String> strs = new ArrayList<>();

for (String string : ss) {    
if(!string.equals("")) {
strs.add(string);
}
}

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

for (String string : strs) {
System.out.println(string);
}

Stream的操作:

// ss(集合).stream()(把集合化为流).filter()(过滤,过滤之后还是一个Stream).collect()(把流再重新换成集合)
        collect(Collectors.toList()) //写法比较固定,把流转换为List集合
        ss = ss.stream().filter(s -> !s.isEmpty()).collect(Collectors.toList());
        
        ss.forEach(System.out::println);
        
        
        collect(Collectors.joining(",")) // 把流转换为了字符串,这里是用,分割字符串
        String str = ss.stream().filter(s -> !s.isEmpty()).collect(Collectors.joining(","));
        System.out.println(str);

流的统计:

//流的统计
        //下面这句话是判断集合中有几个空的字符串
        long n = ss.stream().filter(s -> s.isEmpty()).count();
        System.out.println(n);
        
        sorted 排序
        limit 限定
       List<Integer> nums = Arrays.asList(34,7,2,8,35,11,99,55,77);
        nums.stream().sorted().limit(5).forEach(System.out::println);

        List<Integer> nums = Arrays.asList(34,7,2,8,35,11,99,55,77);
        //map 方法可以映射没一个元素处理之后的结果
        nums = nums.stream().map(i -> i*2).collect(Collectors.toList());
        
        nums.forEach(System.out::println);
posted @ 2019-12-18 22:09  水里的实心猫  阅读(287)  评论(0编辑  收藏  举报