Lambda_07 函数表达式forEach遍历和普通遍历的区别|8月更文挑战

137 阅读1分钟

这是我参与8月更文挑战的第22天,活动详情查看:8月更文挑战

传统遍历方法

/**
* 传统遍历方法
*/
System.out.println("==================传统遍历方法===============");
for (String str : list) {
   System.out.println(str);
}

Lambda 遍历

/**
* Lambda 遍历
*/
System.out.println("==================匿名内部类 遍历方法===============");
list.forEach(new Consumer<String>() {
   @Override
   public void accept(String s) {
       System.out.println(s);
   }
});

Lambda 遍历 简化版

System.out.println("==================Lambda表达式 遍历方法===============");
 list.forEach((String str) -> {
     System.out.println(str);
 });

 System.out.println("==================Lambda表达式(简化) 遍历方法===============");
 list.forEach(str -> System.out.println(str));

完整示例:

public static void main(String[] args) {
    List<String> list = Arrays.asList("L", "A", "M", "B", "D", "A");
    /**
     * 传统遍历方法
     */
    System.out.println("==================传统遍历方法===============");
    for (String str : list) {
        System.out.println(str);
    }
    /**
     * Lambda 遍历
     */
    System.out.println("==================匿名内部类 遍历方法===============");
    list.forEach(new Consumer<String>() {
        @Override
        public void accept(String s) {
            System.out.println(s);
        }
    });

    System.out.println("==================Lambda表达式 遍历方法===============");
    list.forEach((String str) -> {
        System.out.println(str);
    });

    System.out.println("==================Lambda表达式(简化) 遍历方法===============");
    list.forEach(str -> System.out.println(str));
}

lambda表达式在实际开发中其实很好使用,建议大家多实用lambda表达式,但是就是语法比较抽象,不容易懂。需要多使用才能掌握。


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);
});