Stream类API

map方法

public static void main(String[] args) {
    List<String> list1 = new ArrayList();
    for(long i = 0; i < 10; i++){
        list1.add(i+"");
    }
    List<Integer> list2 = list1.stream().map(e -> Integer.parseInt(e)).collect(Collectors.toList());
    System.out.println(list2);
}

flatMap方法

public static void main(String[] args) {
     List<String> list3 = new ArrayList();
    for(long i = 20; i > 10; i--){
        list3.add(i+"");
    }
    List list4 = list1.stream().flatMap(e -> list3.stream()).collect(Collectors.toList());
    System.out.println(list4);
}

flatMap与map方法作用就是遍历调用者的数据通过传的兰姆达表达式返回它的数据形成一个新的集合也就是list4与list2

flatMap是双重循环,map是单层循环

flatMap方法相当于下面的东西

for(long i1 = 0; i1 < list1.size(); i1++){
    for(long i2 = 0; i2 < list3.size();i2++){
        list4.add(list4.get(Integer.parseInt(i2+"")));
    }
}

map方法相当于下面的东西

    for(long i2 = 0; i2 < list3.size();i2++){
        list4.add(list4.get(Integer.parseInt(i2+"")));
    }

版权声明:本文为qq_36301061原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。