本套JAVA8教程由于是有英文翻译过来的,如果有翻译不对的地方还请多多包涵。
本节课先简单的介绍下Java8有哪些新特性,对于Java6/7版本做出哪些更改.那废话不多说,赶紧开始今天的课程吧.
上一节教程学到list转map, 是不是稍微简单了呢. 那么下面继续对map进行操作吧.一起看下怎么过滤map的值吧? 有的同学已经想到了filter
函数咯,那就看下代码吧!
过滤一个Map
public static void main(String[] args) {
Map<Integer, String> HOSTING = new HashMap<>();
HOSTING.put(1, "linode.com");
HOSTING.put(2, "heroku.com");
HOSTING.put(3, "digitalocean.com");
HOSTING.put(4, "aws.amazon.com");
String result = "";
for (Map.Entry<Integer, String> entry : HOSTING.entrySet()) {
if ("aws.amazon.com".equals(entry.getValue())) {
result = entry.getValue();
}
}
System.out.println("java 8 之前: " + result);
//Map -> Stream -> Filter -> String
result = HOSTING.entrySet().stream()
.filter(map -> "aws.amazon.com".equals(map.getValue()))
.map(Map.Entry::getValue)
.collect(Collectors.joining());
System.out.println("java 8 : " + result);
result = HOSTING.values().stream()
.filter("aws.amazon.com"::equals)
.collect(Collectors.joining());
System.out.println("java 8-2 : " + result);
}
输出
java 8 之前: aws.amazon.com
java 8 : aws.amazon.com
java 8-2 : aws.amazon.com
以上代码顾名思义就是过滤出map的值为aws.amazon.com
,写了java8与java8之前的对比,为了更好的理解
过滤一个Map-2
public static void main(String[] args) {
Map<Integer, String> HOSTING = new HashMap<>();
HOSTING.put(1, "linode.com");
HOSTING.put(2, "heroku.com");
HOSTING.put(3, "digitalocean.com");
HOSTING.put(4, "aws.amazon.com");
Map<Integer, String> collect = HOSTING.entrySet().stream()
.filter(map -> map.getKey() == 2)
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
System.out.println(collect);
collect = HOSTING.entrySet().stream()
.filter(map -> map.getKey() == 2)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(collect);
}
输出
{2=heroku.com}
{2=heroku.com}
以上代码是过滤出key为2的map
以上就是操作map的常用的方法,是不是学会了
欢迎小伙伴留言哦
网友评论