语法糖
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);