//找到年龄大于22岁的人 List<Person> list = new ArrayList<Person>(); list.add(new Person("小王", 23)); list.add(new Person("小力", 25)); list.add(new Person("小美", 18)); list.add(new Person("小明", 16));
list.stream().filter(e -> e.getAge() > 22).forEach(s -> System.out.println(s)); |
//获取前2个元素 List<Person> list = new ArrayList<Person>(); list.add(new Person("小王", 23)); list.add(new Person("小力", 25)); list.add(new Person("小美", 18)); list.add(new Person("小明", 16));
list.stream().limit(2).forEach(s-> System.out.println(s)); |
//跳过前2个元素 List<Person> list = new ArrayList<Person>(); list.add(new Person("小王", 23)); list.add(new Person("小力", 25)); list.add(new Person("小美", 18)); list.add(new Person("小明", 16));
list.stream().skip(2).forEach(s-> System.out.println(s)); |
//去重复,把小明去重复 需要重写hashCode 和 equals 方法 List<Person> list = new ArrayList<Person>(); list.add(new Person("小王", 23)); list.add(new Person("小力", 25)); list.add(new Person("小美", 18)); list.add(new Person("小明", 16)); list.add(new Person("小明", 16));
list.stream().distinct().forEach(s-> System.out.println(s)); |
// 按照年龄来顺序排列 List<Person> list = new ArrayList<Person>(); list.add(new Person("小王", 23)); list.add(new Person("小力", 25)); list.add(new Person("小美", 18)); list.add(new Person("小明", 16)); list.add(new Person("小明", 16));
list.stream().sorted((s1,s2)->Double.compare(s1.getAge(),s2.getAge())).forEach(s -> System.out.println(s)); |
// 获取到姓名 转换为 map List<Person> list = new ArrayList<Person>(); list.add(new Person("小王", 23)); list.add(new Person("小力", 25)); list.add(new Person("小美", 18)); list.add(new Person("小明", 16)); list.add(new Person("小明", 16));
list.stream().map( e -> e.getName() ).forEach(s -> System.out.println(s)); |
// 使用 parallelStream 来多线程效率 // parallelStream 多线的效率比 stream 的效率高 List<Person> list = new ArrayList<Person>(); list.add(new Person("小王", 23)); list.add(new Person("小力", 25)); list.add(new Person("小美", 18)); list.add(new Person("小明", 16)); list.add(new Person("小明", 16));
list.parallelStream().forEach(s -> System.out.println(s)); |
|