• lambda表达式


    package lambda;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    import java.util.Random;
    
    /**
     * lambda表达式
     * JDK1.8之后推出的一个新特性
     * 
     * lambda特性也是编译器认可的,用来简化对于仅有一个
     * 方法的匿名内部类的创建,但是表一起在编译程序后
     * 还是会将lambda改为传统形式。
     * lambda语法:
     * 基本组成部分
     * ([arg1,arg2....])->{语句...}
     * 若语句块只有一句,则{}可以省略。
     * 注:在语法描述中,[]用于表示里面的内容可有可无
     * 
     *
     */
    
    public class Demo {
    	public static void main(String[] args) {
    //		Runnable runn =new Runnable() {
    //		public void run() {
    //			System.out.println("啦啦啦");
    //		}
    //	};
    		
    	//下面代码 Runnable 等同于上面的
    	Runnable runn =()-> System.out.println("啦啦啦");
    	Thread t =new Thread(runn);
    	t.start();
    	
    	//创建10个随机范围在100以内的数
    	//给它从大往下排序排序
    	Random random =new Random();
    	List<Integer> list =new ArrayList<Integer>();
    	for(int i=0 ;i<10;i++) {
    		list.add(random.nextInt(100));
    	}
    	System.out.println(list);
    	Collections.sort(list);//从小往大排序
    	System.out.println(list);
    	
    //	Collections.sort(list, new Comparator<Integer>() {
    //		public int compare(Integer o1, Integer o2) {
    //			return o2-o1;
    //		}
    //	});
    	/**
    	 * lambda表达式实现方法中若只有一句话,且含有return时
    	 * 忽略i{}的同时也要忽略return,若该方法有参数,那么不需要
    	 * 定义参数的类型
    	 */
    	//下面代码等同于上面注释的代码
    	Collections.sort(list,(o1,o2)->o2-o1);//从大往小排序
    	System.out.println(list);
    	
    	List<String> list1 =new ArrayList<String>();
    	list1.add("one");
    	list1.add("two");
    	list1.add("three");
    	list1.add("four");
    	list1.add("five");
    //	for(String e :list1) {
    //		System.out.println(e);
    //	}
    //	
    	//用lambda方法可以遍历集合元素,等同于上面的方法
    	list1.forEach(e->System.out.println(e));
    	
    	
    	
    	
    	
    	}
    }
    

      

  • 相关阅读:
    DNA Sequence SCU3030/poj2778 AC自动机fail指针dp+矩阵快速幂
    HDU
    loj 104 普通平衡树splay
    ACM选手进阶指北:一个好的代码库与latex维护代码文档
    codeforces 914E 树上点分治
    codeforces 293E 树上点分治+bit维护二维偏序
    OnTouchListener事件监听实现方式之GestureDetector
    【Android 界面效果31】Android--侧滑菜单应用的实现
    onInterceptTouchEvent和onTouchEvent举例分析
    【Android 界面效果30】Android中ImageSwitcher结合Gallery展示SD卡中的资源图片
  • 原文地址:https://www.cnblogs.com/xyk1987/p/8378818.html
Copyright © 2020-2023  润新知