【Java】--java 8版本特性

一、Java 8特性汇总

Java8是目前较为常用的版本,有很多功能介绍,总的概述如下
在这里插入图片描述

二、lambda表达式

Lambda表达式相当于函数式接口实现的实例。
语法格式:

 (parameters) -> expression  或  (parameters) ->{
   
    
     statements; }
 
* 用逗号分隔的参数列表
* -> 符号
* 和 语句块 组成

使用说明:

 () -> 代表了 lambda的一个表达式;
 单行代码且有参数的情况下可以不写 ()【如  s->System.out.println(s)】;   
(T t)中的参数类型可写可不写;
单行代码无需写return (无论函数式接口有没有返回值),花括号;
多行代码必须写花括号,有返回值的一定要写返回值;

2.1、集合(list/set/Arrays)常见使用

list的按照条件删除、替换、排序、遍历

        List<String> list = new ArrayList<>();
        list.add("ew");
        list.add("dwxs");
        list.add("ffer");
        Collections.sort(list); //默认升序【一般的使用方法】
        //【普通方法降序】
        Collections.sort(list, new Comparator<String>() {
   
    
    
            @Override
            public int compare(String o1, String o2) {
   
    
    
                return o2.compareTo(o1);//降序
            }
        });
        Collections.sort(list,(o1,o2) -> o2.compareTo(o1)); //降序
        //【普通方法删除】
        Iterator<String> iter1 = list.iterator();
        while(iter1.hasNext()){
   
    
    
            String tem = iter1.next();
            if("ew"== tem) iter1.remove();
        }
        list.removeIf(e -> e.equals("ew")); //删除
        list.replaceAll(e -> e.concat("!!")); //批量拼接替换
        list.sort( (o1,o2) -> o2.compareTo(o1)); //排序
        list.forEach(e -> System.out.println(e)); //遍历

        List<String> list3 = new ArrayList<>();
        Collections.addAll(list3,"33","44334","11");
//        list3.parallelStream().filter(e -> e.length() > 2); //这只是过滤条件,并不能直接得到需要的数据
        list3.parallelStream().filter(e -> e.length() > 2).forEach(System.out::print); //会得到 44334

Arrays排序

        String[] strArr = {
   
    
    "33dw","edw2","432","dfwe"};
        Arrays.sort(strArr); //默认升序
        Arrays.sort(strArr,(o1,o2)-> o2.compareTo(o1)); //String[]降序

TreeSet支持 降序、遍历打印

 Set<String> set = new TreeSet<String>(
                (o1, o2) -> {
   
    
    
                    if(o2.compareTo(o1) > 0){
   
    
    
                         return 1;
                    }
                    return -1;
                }
        );
        set.add("ew");
        set.add("dwxs");
        set.add("54dcsd");
        set.add("ffer");
        set.forEach(e -> System.out.println(e));

2.2、线程常见使用

创建线程

  new Thread(
                () -> {
   
    
    
                    for(int i=0;i<20;i++){
   
    
    
                        System.out.println(i);
                    }
                }
        ).start();

2.3、Bean对象装配成集合(list)

   Person p1 = new Person();
        p1.setPersonID(123);
        Person p2 = new Person();
        p2.setPersonID(43);
        Person p3 = new Person();
        p3.setPersonID(567);
        List<Person> personList = Stream.of(p1,p2,p3).collect(Collectors.toList());

        List<Person> personList2 = Stream.of(22,33,44).map(e ->{
   
    
    
            Person tem = new Person

猜你喜欢

转载自blog.csdn.net/xunmengyou1990/article/details/124080452