Lambda表达式 遍历集合(map、list forEach)

 

什么是Lambda表达式

Lmbda 好处: 简化我们匿名内部类的调用。

Lambda+方法引入 代码变得更加精简。

Lmbda 表达式(lambda expression)是一个匿名函数,简化我们调用匿名函数的过程。

Lambda语法

三要素:参数、箭头、代码

(参数类型 参数1, 参数类型 参数2....) -> {代码}


  1. 如果参数有多个,那么使用逗号分隔。如果参数没有,则留空
  2. 箭头是固定写法
  3. 大括号相当于方法体。

使用Lambda表达式的必要前提:必须是函数式接口

 

函数式接口在Java中是指:有且仅有一个抽象方法的接口。

 

 

 public static void main(String[] args) {

//两种效果是相同的
doSome(()-> System.out.println("使用lambda调用接口"));
MyFuc myFuc=()-> System.out.println("使用lambda调用接口");
myFuc.grt();
}

public static void doSome(MyFuc myFuc){
myFuc.grt();
}

 @FunctionalInterface
public interface MyFuc {
void grt();
}

 

 

Integer[] items = {1, 2, 3};

Arrays.asList(items).forEach((item) -> { //加数组转集合在进行遍历
System.out.println(item);
});

Map<String, String> m = new HashMap<String, String>();
m.put("a", "haha");
m.put("b", "hahaha");
m.put("d", "hahe");
m.put("c", "haheeee");
m.forEach((k,v)->{
System.out.println(k);
System.out.println(v);
});

HashMap<String,Object> map=new HashMap<>();
map.put("1", "aa");
map.put("2", "bb");

map.forEach((k,v) ->{
System.out.println(k);
System.out.println(v);
});

List<HashMap<String,Object>> list2 =new ArrayList<>();
list2.add(map);

list2.forEach((k)->{
System.out.println(k.get("1"));
System.out.println(k.get("2"));
});

//过滤遍历 使用stream流
List<Strudent> list = new ArrayList<Strudent>() {{
            add(new Strudent("b", 11, "女"));
            add(new Strudent("a", 19, "男"));
            add(new Strudent("d", 15, "女"));
            add(new Strudent("c", 22, "男"));
        }};

list.stream().filter(student -> {
    student.getAge() < 20
}).forEach(
    System.out.println(student.toString());
});

List<String> list = Arrays.asList("abc", "", "bc", "efg", "abcd","abc", "abc");
//map 方法用于映射每个元素到对应的结果(及对每个元素做操作)
list.stream().map(a -> a+"1").forEach(one -> {
System.out.println(one);
});


对程序员来说最直观的感受就是用Lambda表达式可以简化很多代码。使用它可以很轻松的将很多行代码缩减成一行。

而更大的意义是,Lambda表达式对java性能的提升。

 
posted @ 2020-05-13 13:50  颂先生  阅读(9271)  评论(0编辑  收藏  举报