失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【Java 8 新特性】使用Collectors.toList()方法将Map转化成List的示例

【Java 8 新特性】使用Collectors.toList()方法将Map转化成List的示例

时间:2021-09-01 09:38:24

相关推荐

【Java 8 新特性】使用Collectors.toList()方法将Map转化成List的示例

文章目录

1.使用`Lambda`表达式将`Map`转化成`List`2.简单`Map`转化成`List`示例3.用户对象`Map`转化成`List`示例参考文献

在这个页面上,我们将提供Java8转换MapList的方法Collectors.toList()示例。

一个映射有键和值,我们可以将所有键和值作为列表来获取。

如果我们想在一个类属性中设置keyvalue,然后把这个对象添加到List中,我们可以用java8的一行代码来实现Collectors.toList().

现在让我们看看怎么做。

1.使用Lambda表达式将Map转化成List

Collectors.toList()方法中使用lambda表达式将Map转换为List,如下示例

List<String> valueList = map.values().stream().collect(Collectors.toList());

如果我们想在放入List之前对值进行排序,我们将按如下方式进行。

List<String> sortedValueList = map.values().stream().sorted().collect(Collectors.toList());

我们还可以使用给定的比较器(paring())将Map转换为用户对象List

List<Person> list = map.entrySet().stream().sorted(paring(e -> e.getKey())).map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());

这里的Person是一个用户类。我们也可以使用Map.Entry获取Map的键和值如下。

List<Person> list = map.entrySet().stream().sorted(paring(Map.Entry::getValue)).map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());

作为比较,我们也可以使用paringByValue()paringByKey()分别根据值和键对数据进行排序。

List<Person> list = map.entrySet().stream().sorted(paringByKey()).map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());

2.简单Map转化成List示例

SimpleMapToList.java

package com.concretepage;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class SimpleMapToList {public static void main(String[] args) {Map<Integer, String> map = new HashMap<>();map.put(23, "Mahesh");map.put(10, "Suresh");map.put(26, "Dinesh");map.put(11, "Kamlesh");System.out.println("--Convert Map Values to List--");List<String> valueList = map.values().stream().collect(Collectors.toList());valueList.forEach(n -> System.out.println(n));System.out.println("--Convert Map Values to List using sort--");List<String> sortedValueList = map.values().stream().sorted().collect(Collectors.toList());sortedValueList.forEach(n -> System.out.println(n));System.out.println("--Convert Map keys to List--");List<Integer> keyList = map.keySet().stream().collect(Collectors.toList());keyList.forEach(n -> System.out.println(n));System.out.println("--Convert Map keys to List using sort--");List<Integer> sortedKeyList = map.keySet().stream().sorted().collect(Collectors.toList());sortedKeyList.forEach(n -> System.out.println(n));}}

输出

--Convert Map Values to List--MaheshSureshDineshKamlesh--Convert Map Values to List using sort--DineshKamleshMaheshSuresh--Convert Map keys to List--23102611--Convert Map keys to List using sort--10112326

3.用户对象Map转化成List示例

MapToListOfUserObject.java

package com.concretepage;import parator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class MapToListOfUserObject {public static void main(String[] args) {Map<Integer, String> map = new HashMap<>();map.put(23, "Mahesh");map.put(10, "Suresh");map.put(26, "Dinesh");map.put(11, "Kamlesh");List<Person> list = map.entrySet().stream().sorted(paring(e -> e.getKey())).map(e -> new Person(e.getKey(), e.getValue())).collect(Collectors.toList());list.forEach(l -> System.out.println("Id: "+ l.getId()+", Name: "+ l.getName()));}}

Person.java

package com.concretepage;public class Person {private Integer id;private String name;public Person(Integer id, String name) {this.id = id;this.name = name;}public Integer getId() {return id;}public String getName() {return name;}}

输出

Id: 10, Name: SureshId: 11, Name: KamleshId: 23, Name: MaheshId: 26, Name: Dinesh

如果我们需要按键来排序的话,我们可以使用键来排序

paring(e -> e.getValue())

然后输出如下。

Id: 26, Name: DineshId: 11, Name: KamleshId: 23, Name: MaheshId: 10, Name: Suresh

参考文献

【1】Java 8 Convert Map to List using Collectors.toList() Example

如果觉得《【Java 8 新特性】使用Collectors.toList()方法将Map转化成List的示例》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。