1. ArrayList<Person> list = new ArrayList<>();
    2. list.add(new Person("a", 1));
    3. list.add(new Person("b", 12));
    4. list.add(new Person("c", 3));
    5. Map<String, Integer> map = list.stream().collect(Collectors.toMap(new Function<Person, String>() {
    6. @Override
    7. public String apply(Person person) {
    8. return person.name;
    9. }
    10. }, new Function<Person, Integer>() {
    11. @Override
    12. public Integer apply(Person person) {
    13. return person.age;
    14. }
    15. }));
    16. for (String s : map.keySet()) {
    17. System.out.println(s + "--" + map.get(s));
    18. }
    19. }

    lambda表达式写法

    1. Map<String, Integer> map2 = list.stream().collect(Collectors.toMap(person -> person.name, person -> person.age));
    2. for (String s : map2.keySet()) {
    3. System.out.println(s + "--" + map2.get(s));
    4. }

    Person.java
    StreamTest2.java