Java中List使用stream流转成map的几种方式

时间:2025-03-26 08:17:03
  • 实体例子
  • List 转成Map
  • List 转成Map
  • List 转成Map
    • 方法一:
    • 方法二:
  • List 转成Map
  • List> 转成Map>
  • List> 转成Map
  • List> 转成Map>
  • List> 转成Map
  • 总结

实体例子

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public class Person {

    private String name;

    private String address;

    public Person(String name, String address) {

        this.name = name;

        this.address = address;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public String getAddress() {

        return address;

    }

    public void setAddress(String address) {

        this.address = address;

    }

}

List 转成Map<String,Object>

1

2

3

4

5

6

7

8

9

10

11

List<Person> list = new ArrayList<>();

Person person1 = new Person("熊大","森林第一个小屋");

Person person2 = new Person("熊二","森林第二个小屋");

Person person3 = new Person("光头强","森林第三个小屋");

Person person4 = new Person("熊大","森林第四个小屋");

(person1);

(person2);

(person3);

(person4);

Map<String,Person> map =  ().collect((Person::getName,each->each,(value1, value2) -> value1));

((map));

控制台打印日志:

{“光头强”:{“address”:“森林第三个小屋”,“name”:“光头强”},“熊大”:{“address”:“森林第一个小屋”,“name”:“熊大”},“熊二”:{“address”:“森林第二个小屋”,“name”:“熊二”}}

List 转成Map<String,String>

1

2

3

4

5

6

7

8

9

10

11

List<Person> list = new ArrayList<>();

Person person1 = new Person("熊大","森林第一个小屋");

Person person2 = new Person("熊二","森林第二个小屋");

Person person3 = new Person("光头强","森林第三个小屋");

Person person4 = new Person("熊大","森林第四个小屋");

(person1);

(person2);

(person3);

(person4);

Map<String,String> map =  ().collect((Person::getName,Person::getAddress,(value1, value2) -> value1));

((map));

控制台打印日志:

{“光头强”:“森林第三个小屋”,“熊大”:“森林第一个小屋”,“熊二”:“森林第二个小屋”}

List 转成Map<String,List>

方法一:

1

2

3

4

5

6

7

8

9

10

11

List<Person> list = new ArrayList<>();

Person person1 = new Person("熊大","森林第一个小屋");

Person person2 = new Person("熊二","森林第二个小屋");

Person person3 = new Person("光头强","森林第三个小屋");

Person person4 = new Person("熊大","森林第四个小屋");

(person1);

(person2);

(person3);

(person4);

Map<String, List<Person>> map = ().collect((Person::getName));

((map));

控制台打印日志:

{“光头强”:[{“address”:“森林第三个小屋”,“name”:“光头强”}],“熊大”:[{“address”:“森林第一个小屋”,“name”:“熊大”},{“address”:“森林第四个小屋”,“name”:“熊大”}],“熊二”:[{“address”:“森林第二个小屋”,“name”:“熊二”}]}

方法二:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

List<Person> list = new ArrayList<>();

Person person1 = new Person("熊大","森林第一个小屋");

Person person2 = new Person("熊二","森林第二个小屋");

Person person3 = new Person("光头强","森林第三个小屋");

Person person4 = new Person("熊大","森林第四个小屋");

(person1);

(person2);

(person3);

(person4);

Map<String,List<Person>> map =  ().collect((Person::getName,each->(each),(value1, value2) -> {

        List<Person> union = new ArrayList<>(value1);

        (value2);

        return union;

    }));

((map));

控制台打印日志:

{“光头强”:[{“address”:“森林第三个小屋”,“name”:“光头强”}],“熊大”:[{“address”:“森林第一个小屋”,“name”:“熊大”},{“address”:“森林第四个小屋”,“name”:“熊大”}],“熊二”:[{“address”:“森林第二个小屋”,“name”:“熊二”}]}

List 转成Map<String,List>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

List<Person> list = new ArrayList<>();

Person person1 = new Person("熊大","森林第一个小屋");

Person person2 = new Person("熊二","森林第二个小屋");

Person person3 = new Person("光头强","森林第三个小屋");

Person person4 = new Person("熊大","森林第四个小屋");

(person1);

(person2);

(person3);

(person4);

Map<String,List<String>> map = ().collect((Person::getName,each->(()),(value1, value2) -> {

        List<String> union = new ArrayList<>(value1);

        (value2);

        return union;

    }));

((map));

控制台打印日志:

{“光头强”:[“森林第三个小屋”],“熊大”:[“森林第一个小屋”,“森林第四个小屋”],“熊二”:[“森林第二个小屋”]}

List<Map<String,Object>> 转成Map<String,Map<String,Object>>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

List<Map<String,Object>> list = new ArrayList<>();

Person person1 = new Person("熊大","森林第一个小屋");

Person person2 = new Person("熊二","森林第二个小屋");

Person person3 = new Person("光头强","森林第三个小屋");

Map<String,Object> map1 = new HashMap<>();

("id","1");

("person",person1);

Map<String,Object> map2 = new HashMap<>();

("id","2");

("person",person2);

Map<String,Object> map3 = new HashMap<>();

("id","3");

("person",person3);

(map1);

(map2);

(map3);

Map<String,Map<String,Object>> map = ().collect((each->(("id"),""),each->each,(key1,key2)->key1));

((map));

控制台打印日志:

{“1”:{“person”:{“address”:“森林第一个小屋”,“name”:“熊大”},“id”:“1”},“2”:{“person”:{“address”:“森林第二个小屋”,“name”:“熊二”},“id”:“2”},“3”:{“person”:{“address”:“森林第三个小屋”,“name”:“光头强”},“id”:“3”}}

List<Map<String,Object>> 转成Map<String,Object>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

List<Map<String,Object>> list = new ArrayList<>();

Person person1 = new Person("熊大","森林第一个小屋");

Person person2 = new Person("熊二","森林第二个小屋");

Person person3 = new Person("光头强","森林第三个小屋");

Map<String,Object> map1 = new HashMap<>();

("id","1");

("person",person1);

Map<String,Object> map2 = new HashMap<>();

("id","2");

("person",person2);

Map<String,Object> map3 = new HashMap<>();

("id","3");

("person",person3);

(map1);

(map2);

(map3);

Map<String,Object> map = ().collect((each->(("id"),""),each->("person"),(key1,key2)->key1));

((map));

控制台打印日志:

{“1”:{“address”:“森林第一个小屋”,“name”:“熊大”},“2”:{“address”:“森林第二个小屋”,“name”:“熊二”},“3”:{“address”:“森林第三个小屋”,“name”:“光头强”}}

List<Map<String,String>> 转成Map<String,Map<String,String>>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

List<Map<String,String>> list = new ArrayList<>();

Map<String,String> map1 = new HashMap<>();

("id","1");

("name","熊大");

("address","森林第一个小屋");

Map<String,String> map2 = new HashMap<>();

("id","2");

("name","熊二");

("address","森林第二个小屋");

Map<String,String> map3 = new HashMap<>();

("id","3");

("name","光头强");

("address","森林第三个小屋");

(map1);

(map2);

(map3);

Map<String,Map<String,String>> map = ().collect((each->("id"),each->each,(key1,key2)->key1));

((map));

控制台打印日志:

{“1”:{“address”:“森林第一个小屋”,“name”:“熊大”,“id”:“1”},“2”:{“address”:“森林第二个小屋”,“name”:“熊二”,“id”:“2”},“3”:{“address”:“森林第三个小屋”,“name”:“光头强”,“id”:“3”}}

List<Map<String,String>> 转成Map<String,String>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

List<Map<String,String>> list = new ArrayList<>();

Map<String,String> map1 = new HashMap<>();

("id","1");

("name","熊大");

("address","森林第一个小屋");

Map<String,String> map2 = new HashMap<>();

("id","2");

("name","熊二");

("address","森林第二个小屋");

Map<String,String> map3 = new HashMap<>();

("id","3");

("name","光头强");

("address","森林第三个小屋");

(map1);

(map2);

(map3);

Map<String,String> map = ().collect((each->("id"),each->("name"),(key1,key2)->key1));

((map));

控制台打印日志:

{“1”:“熊大”,“2”:“熊二”,“3”:“光头强”}