java8 新特性 lambda格式入门

废话不说,直接上代码,看注释


import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.function.Consumer;

/**
 *
 * lambda完整格式
 * (Type1 param1, Type2 param2, ..., TypeN paramN) -> {
      statment1;
      statment2;
      //.............
      return statmentM;
     }
 * @author huitoukest
 * @version 1.0
 *
 */
public class Main {
    /**
     * 
     * @param args
     */
    public static  void main(String[] args){
        
        Main main=new Main();
             main.testLambda01();
             main.testLambda02();
             main.testLambda03();
    }
    //匿名类
    public void testLambda01(){
        Thread t2=new Thread(new Runnable() {
            
            @Override
            public void run() {
                System.out.println("just test01!");
            }
        });
        t2.start();   
        //省略方法体格式
        Thread t1=new Thread(()->System.out.println("just test02!"));
        t1.start();        
    }
    
    //排序
    public void testLambda02(){
        List<String> list1=Arrays.asList("1a" ,"0ab"," c");
        list1.sort(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });       
        list1.forEach(new Consumer<String>(){
            @Override
            public void accept(String t) {
                System.out.println(t);
            }});       
        List<String> list=Arrays.asList("b" ,"1","c");
        list.sort((a,b)->a.compareTo(b));
        //省略参数和方法体,自动匹配输入的参数
        list.forEach(System.out::println);
        //或者
        Collections.sort(list, (a,b)->a.compareTo(b));
        
    }
    
    /**
     * map映射与stream操作,可以把Stream当成一个高级版本的Iterator
     * 用户只要给出需要对其包含的元素执行什么操作,具体这些操作如何应用到每个元素上,就给Stream就好了!
     */
    
    public void testLambda03(){
        List<String> list=Arrays.asList("b" ,"1","c","dd","2");
        list.stream()
         //省略参数类型,加入方法体
        .filter((a)->{ if(a.length()<2) return true; return false;})
        .map(a->a+"_")
        .forEach((a)->System.out.println(a))
        ;       
        System.out.println();
        list.forEach((a)->System.out.println(a));
    }
//map和list之间的转换
     public void java8Test0(){
        String[] a = new String[]{"a", "b", "c","","   ",null};
        Map<String,Integer> list = Stream.of(a)
                .filter(item-> !CheckUtil.isNull(item) && item.trim().length() > 0)
                .map(item-> {
                    MerPayType mp = new MerPayType();
                    mp.setPayNo(item);
                    mp.setId((int) (Math.random()*10000));
                    return  mp;
                })
                .collect(Collectors.toMap(MerPayType::getPayNo,MerPayType::getId));
        Map<Integer,String> map  = list.entrySet().stream().collect(Collectors.toMap(item->item.getValue(),Map.Entry::getKey));
        map.forEach((k,v)->System.out.println(k + "," + v));


        System.out.println(JSON.toJSONString(list));
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值