小编Pab*_*blo的帖子

什么是解包变量?

我一直试图理解选项的概念并隐式解包可选但我只是没有得到术语?我的问题是:

  1. 什么是编程包装?包裹的字符串是什么?
  2. 什么是解缠?
  3. 可选(?)和隐式解包功能(!)之间有什么区别
  4. 你什么时候用?要么 !
  5. 它们隐含地隐含在未包装的可选项中是什么意思?

解包只是揭示变量的真值,无论它是零还是值?

swift

4
推荐指数
1
解决办法
2669
查看次数

使用对象列表构建不可变地图

我有一个学生列表和一个委托,该委托具有获取给定学生的服务器列表的功能 ( getServersForStudent(student))。我想为每个服务器索引的学生列表创建一个地图。一个学生可以在多个服务器中。

private Map<Server, Student> getStudentsByServer(List<Student> students) {
    Map<Server, List<Student>> map = new HashMap<>();
    students.forEach(student ->
        List<Server> servers = delegate.getServersForStudent(student);
        if (!servers.isEmpty()) {
            servers.forEach(server -> map.putIfAbsent(server, new ArrayList<>()).add(student));   
        }
    );
    return map
}

Run Code Online (Sandbox Code Playgroud)

这工作得很好,但我想重构它以使用流来创建一个不可变的集合。我尝试使用 groupingBy 执行此操作,但无法获得正确的结果:

students
    .stream()
    .collect(
        Collectors.groupingBy(
            student -> delegate.getServersForStudent(student);
            Collectors.mapping(Function.identity(), Collectors.toList())
        )
);
Run Code Online (Sandbox Code Playgroud)

此分组与上面的结果不同,因为它是按列表分组的。有人对如何使用 Java 流最好地做到这一点有任何建议吗?

java java-stream

0
推荐指数
1
解决办法
268
查看次数

标签 统计

java ×1

java-stream ×1

swift ×1