zoukankan      html  css  js  c++  java
  • Lambda表达式

    1.函数式接口:只有一个抽象方法的接口叫函数式接口

    存在的意义:方法里面不能直接传方法,所以通过传函数式接口的方式可以间接的实现方法的传递
    lambda表达式:对匿名内部类的一种简单的写法常用于实现函数式接口

    1.lambda实现Runnable

    // Java 8 之前:
    	new Thread(new Runnable() {
    	@Override
    	public void run() {
    		System.out.println("Before Java8, too much code for too little to do");
    	}
    	}).start();
    // Java 8 方式:
    	new Thread(()->System.out.println("In Java8, Lambda expression rocks !!")).start();
    

    2.lambda实现Compare

    		List<Entry<Integer, User>> list = new ArrayList<>();
    		for (Entry<Integer, User> entry: map.entrySet())
    			list.add(entry);
    		list.sort((Entry<Integer, User> o1, Entry<Integer, User> o2) -> {
    			return o1.getValue().getAge() - o2.getValue().getAge();
    		});
    

    3.steam中Map的用法:对每个值做相应的操作

    List<String> G7 = Arrays.asList("USA", "Japan", "France", "Germany", "Italy", "U.K.","Canada");
    String G7Countries = G7.stream().map(x -> x.toUpperCase()).collect(Collectors.joining(", "));
    

    lambda表达式不能修改局部变量,但是可以访问

    List<Integer> primes = Arrays.asList(new Integer[]{2, 3,5,7});
    int factor = 2;
    primes.forEach(element -> { factor++; }); // 错误
    primes.forEach(element -> {System.out.println(2)}); // 正确
    

    4.stream中的过滤并返回新的集合

    // 创建一个字符串列表,每个字符串长度大于 2
    List costBeforeTax = Arrays.asList("abc","bcd","defg","jk");
    List<String> filtered = strList.stream().filter(x -> x.length()> 2).collect(Collectors.toList()); // filter()过滤集合并返回stream,collect()返回集合
    System.out.printf("Original List : %s, filtered list : %s %n", strList, filtered);
    
  • 相关阅读:
    Android添加横线和竖线分割界面
    ViewPager + Fragment实现滑动标签页
    fragment中嵌套viewpager,vierpager中有多个fragment,不显示 .
    Android开发之ViewPager实现轮播图(轮播广告)效果的自定义View
    Android SDK快速下载
    Codeforces Round #256 (Div. 2) D. Multiplication Table
    UITabBarControler解决旋转问题
    SQL Server 板机
    nested push animation can result in corrupted navigation bar
    10.树和树店
  • 原文地址:https://www.cnblogs.com/zhz-8919/p/10861843.html
Copyright © 2011-2022 走看看