顺序流 stream()
并行流 parallelStream()
collect
快速创建List
public class User {
public User(String name, String age, int height) {
this.name = name;
this.age = age;
this.height = height;
}
private String name;
private String age;
private int height;
// setter、getter方法我就不写了
}
// 创建三个user
User user1 = new User("111", "18", 180);
User user2 = new User("222", "18", 175);
User user3 = new User("333", "19", 170);
(1)、new一个list
List<User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
userList.add(user3);
(2)、Stream流:创建动态list,可以添加元素
// stream流,创建的是动态数组,可以添加元素
List<User> userList =
Stream.of(user1, user2, user3).collect(Collectors.toList());
备注:创建一个固定长度的list:Arrays.asList(…args)返回一个list(本质是将一个数组转成list,数组的大小是固定的,所以此list不能添加元素)
map
可以使用map方法把对象中的某个属性取出后,重新(加工)组成新的列表。
取对象的某一列
取出list中所有user的name属性放到一个新的list中:
// Stream流
List<String> userNameList =
userList.stream().map(User::getName).collect(Collectors.toList());
filter
返回由与此给定谓词匹配的此流的元素组成的流。
筛选出userList中name不为空的user
// 获取userName不为空的user的List
List<User> userList = userList.stream()
.filter(user-> user.getName() != null)
.collect(Collectors.toList());
/**
* IO流用于读写,Stream流用于处理数组和集合数据,解决传统集合遍历
*/
Set<String> set = new TreeSet<>();
set.add("张**");
set.add("wang**");
set.add("张*1");
set.add("张wagn**");
set.add("kak**");
set.add("lili**");
set.add("张**");
//forEach
set.stream().filter(name -> name.startsWith("张"))
.filter(name