我在 JAVA 中创建了一个图形,我想按如下方式处理:每个节点都有一个名称并与一个数字(一个整数的数量)相关联。我想按升序对数量进行排序,并将节点的关联顺序放入一个列表中(我使用 aHashMap将两者关联起来),第一个节点将是最小数量的节点。我尝试以下方法:
while (itNodes.hasNext()){
quatity= allQuatities.get(Integer.parseInt(itNodes.next().name));
mapNameToSize.put(quantity,itNodes.next());
}
HashMap<Integer, Node> orderedResult = mapNameToSize.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
for (int j=0;j<allQuatities.size();j++)
listNodes.add(orderedResult.get(j));
这是一种良好做法的好方法吗?否则,实现上述目标的这种方法的复杂性较低的替代方案是什么?
谢谢。