用stream流将map取出
时间: 2023-11-15 11:47:11 浏览: 78
使用Stream流将map中的元素取出,可以通过调用`map()`方法并传入对应的映射函数来实现。下面是一个例子:
```java
List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> newList = list.stream()
.map(s -> s.toUpperCase())
.collect(Collectors.toList());
```
在这个例子中,我们使用`map()`方法将每个元素转换为大写,并通过`collect()`方法将结果收集到一个新的List中。最终得到的新List中的元素分别是"APPLE"、"BANANA"和"ORANGE"。
相关问题
使用stream流 将list 转为map,key相等时 取出前者的值加上后者的值 赋值给新的值
可以使用Java 8的Stream API来实现这个功能,代码如下:
```
List<String> list = Arrays.asList("a", "b", "c", "a", "d", "b");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(Function.identity(), s -> 1, Integer::sum));
System.out.println(map);
```
这段代码将一个字符串列表转换为一个字符串到整数的映射,其中字符串的值是列表中的元素,整数的值是该元素在列表中出现的次数。如果有多个元素具有相同的字符串值,则将它们的计数相加。最终的输出将是:
```
{a=2, b=2, c=1, d=1}
```
这个映射将每个字符串映射到它在列表中出现的总次数。
java stream流,两个map,取出相同的key
可以使用Java 8中的Stream API来实现。我们可以通过Stream的filter方法过滤出两个Map中相同的key,然后将这些key收集到一个新的集合中。
示例代码如下:
```java
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
map1.put("c", 3);
Map<String, Integer> map2 = new HashMap<>();
map2.put("b", 4);
map2.put("c", 5);
map2.put("d", 6);
Set<String> commonKeys = map1.keySet().stream()
.filter(map2::containsKey)
.collect(Collectors.toSet());
System.out.println(commonKeys); // 输出 [b, c]
```
在上面的示例代码中,我们首先使用Stream的filter方法过滤出map1中与map2中相同的key,然后使用Stream的collect方法将这些key收集到一个Set中。最后,我们将这个Set输出到控制台上。
阅读全文