上课时没事干,随便入门了一下JDK8的新特性,Lambda表达式。
在Python,Swift里都有很多的用到Lambda。
Java里引入的Stream()对象还是不怎么理解。
上代码记录一下
import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors;public class Lambda1 {
public static void main(String[] args) {
File file = new File("/usr");
File[] directions = file.listFiles((File f) -> f.isDirectory());for (File f : directions) { System.out.println(f.getName()); } List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); System.out.println("**********不用Stream筛选************"); List<Integer> newList = new ArrayList<Integer>(); list.forEach(i -> { if (i % 2 == 0) { newList.add(i); } }); System.out.println(newList); System.out.println("**********用Stream筛选**************"); List<Integer> newList2 = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList()); System.out.println(newList2); System.out.println("**********不用Stream排序*************"); Collections.sort(list, (o1, o2) -> o2.compareTo(o1)); System.out.println(list); System.out.println("**********用Stream排序***************"); System.out.println(list.stream().sorted((o1,o2) -> o1.compareTo(o2)).collect(Collectors.toList())); System.out.println("**********用Stream映射***************"); List<Integer> sortList = list.stream().map(i -> { return i + 3; }).collect(Collectors.toList()); System.out.println(sortList); Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "one"); map.put(2, "two"); map.put(3, "three"); map.put(4, "four"); map.put(5, "five"); map.put(6, "six"); map.put(7, "seven"); System.out.println("**********不用Stream遍历map************"); map.forEach( (k,v) -> System.out.println(k + "||" +map.get(k))); }
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于