我最近开始学习流和Lambda表达式,但我的代码遇到了一个问题。
public class StreamApplicationDemo {
public static void main(String[] args) {
List<String> names = new ArrayList<>
(Arrays.asList("Amir", "Hatef","Mehran", "Mojtaba",
"Mohammad", "Ali", "Davood", "Reza", "Mohsen"));
Map<Integer, List<String>> groupByLengthMap = names.
stream().
collect(Collectors.groupingBy(name -> name.length()));
System.out.println(groupByLengthMap);
Map<Integer, Long> groupByLengthNumberMap = names.
stream().
collect(Collectors.groupingBy(name -> name.length(),
Collectors.counting()));
System.out.println(groupByLengthNumberMap);
}
}
{3=[Ali], 4=[Amir, Reza], 5=[Hatef], 6=[Mehran, Davood, Mohsen], 7=[Mojtaba], 8=
[Mohammad]}
{3=1, 4=2, 5=1, 6=3, 7=1, 8=1}
试试这个。
public static void main(String[] args) {
List<String> names = List.of("Amir", "Hatef", "Mehran", "Mojtaba",
"Mohammad", "Ali", "Davood", "Reza", "Mohsen");
Map<Integer, Map<Integer, List<String>>> result = names.stream()
.collect(Collectors.groupingBy(String::length))
.entrySet().stream()
.collect(Collectors.toMap(Entry::getKey,
e -> Map.of(e.getValue().size(), e.getValue())));
System.out.println(result);
}
产出:
{3={1=[Ali]}, 4={2=[Amir, Reza]}, 5={1=[Hatef]}, 6={3=[Mehran, Davood, Mohsen]}, 7={1=[Mojtaba]}, 8={1=[Mohammad]}}
问题内容: 我试图在Android中的HashMap上进行搜索,但出现问题: 考虑以下示例: 现在,我要对其进行迭代并获取每种颜色的值,并希望在“ Toast”中显示。如何显示? 问题答案:
我有一个hashmap,看起来像这样: 我的ImageRecipeMap对象如下所示: 我想获取所有ImageID列表,并使用Java8流创建一个总的ImageID列表。到目前为止,这就是我所拥有的,但我的collect上似乎有一个编译错误:
问题内容: 我的Go程序需要知道所有系统和用户进程的当前cpu使用率。 我如何获得? 问题答案: 我遇到了类似的问题,但从未找到轻量级的实现。这是我的解决方案的精简版,可以回答您的特定问题。我按照tylerl的建议对文件进行采样。您会注意到,我在两次采样之间等待3秒以匹配top的输出,但是在1或2秒的情况下我也取得了不错的结果。我在go例程中的循环中运行类似的代码,然后在需要其他go例程时访问cp
问题内容: 我需要对象A的“列表”或“地图”。…此列表将从另一个ArrayList中添加。当A的参数相等时,认为对象A等于另一个。 我的问题是我只想添加列表中不存在的对象。我不知道在这两种实现方式之间。使用ArrayList或HashMap 哪一个会增加添加大量对象(超过1000个对象或更多对象)的速度更快?我的问题是否有更好的模式??? 问题答案: 首先,我要大胆地指出这是 两个完全不同的数据结
我正在使用Spring-Boot和Spring Security,并使用第三方的OAuth2登录名。 SSO提供程序有一个accesstokenendpoint,它返回以下JSON 引用来自accesstokenendpoint的JSON中的值。我如何访问这些值给定我的设置?
它返回的第一个日期,我是一个菜鸟在正则表达式,所以请帮助我,谢谢