小编use*_*576的帖子

用于分组对象的算法

我有以下课程:

class Sport {
    private String sportsName;
    private List<People> peopleWhoPlayThisSport;
    //...
}
Run Code Online (Sandbox Code Playgroud)
class People {
    private String name;
    private long uniqueId;
   // ...
}
Run Code Online (Sandbox Code Playgroud)

我的输入是运动对象列表,为简单起见,请考虑以下示例:

sport1 - Football,   <Sam, Dylan>
sport2 - Basketball, <Tyler, John>
sport3 - Baseball,   <Carter, Dylan>
sport4 - Hockey,     <Kane, Michael>
sport5 - Soccer,     <Carter, Frank>
Run Code Online (Sandbox Code Playgroud)

我必须创建一个List<List<>>,这样内部列表就是所有具有至少一个普通玩家的体育项目(此处适用传递属性).在上面的例子中,输出应该是,

<<sport1,sport3,sport5> , <sport2> , <sport4>>
Run Code Online (Sandbox Code Playgroud)

有关解决此问题和/或伪代码的任何建议吗?

java algorithm grouping

7
推荐指数
1
解决办法
616
查看次数

并行流概念

我正在探索Java流,并想知道这段代码是否有任何问题.由于我使用并行流,我使用了ConcurrentHashMap.

class Person {
    private String name;

    public String getName() {
        return this.name;
    }
}
Run Code Online (Sandbox Code Playgroud)

ConcurrentHashMap<Integer, Person> map = <Mapping of id to Person>
List<Integer> list = <list of Id>

list = list.parallelStream()
        .filter(id -> map.containsKey(id)
                      && !Strings.isNullOrEmpty(map.get(id).getName()))
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

java concurrency java-8 java-stream

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

标签 统计

java ×2

algorithm ×1

concurrency ×1

grouping ×1

java-8 ×1

java-stream ×1