@Test public void test1(){ List<Person> personList = new ArrayList<Person>(); personList.add(new Person("Tom", 8900, 23, "male", "New York")); personList.add(new Person("Jack", 7000, 25, "male", "Washington")); personList.add(new Person("Lily", 7800, 21, "female", "Washington")); personList.add(new Person("Anni", 8200, 24, "female", "New York")); personList.add(new Person("Owen", 9500, 25, "male", "New York")); personList.add(new Person("Alisa", 7900, 26, "female", "New York")); /** * filter:筛选,是按照一定的规则校验流中的元素,将符合条件的元素提取到新的流中的操作。 * map:接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。 * collect,收集,可以说是内容最繁多、功能最丰富的部分了。从字面上去理解,就是把一个流收集起来,最终可以是收集成一个值也可以收集成一个新的集合。 */ List<String> fiterList = personList.stream().filter(x -> x.getSalary() > 8000).map(Person::getName) .collect(Collectors.toList()); System.out.println("高于8000的员工姓名:" + fiterList); List<Person> fiterList1 = personList.stream().filter(x -> x.getSalary() > 8000).collect(Collectors.toList()); System.out.println("----fiterList1:" + JSONUtil.toJsonStr(fiterList1)); Optional<Person> oldPerson = personList.stream().max(Comparator.comparingInt(Person::getAge)); System.out.println("---------oldPerson:"+JSONUtil.toJsonStr(oldPerson.get())); List<Person> fiterList2 = personList.stream().map(person -> { Person newPerson = new Person(person.getName(),person.getSalary(),person.getAge()+3,person.getSex(),person.getArea()); return newPerson; }).collect(Collectors.toList()); System.out.println("----fiterList2:" + JSONUtil.toJsonStr(fiterList2)); List<Person> fiterList3 = fiterList2.stream().map(person -> { Person newPerson = new Person(person.getName(),person.getAge()>28 ?person.getSalary()+500 : person.getSalary()+1000,person.getAge(),person.getSex(),person.getArea()); return newPerson; }).collect(Collectors.toList()); System.out.println("----fiterList3:" + JSONUtil.toJsonStr(fiterList3)); Map<String,Person> map = personList.stream().collect(Collectors.toMap(Person::getName, p -> p)); System.out.println("---------------map:"+JSONUtil.toJsonStr(map)); }