我在 JAVA 中创建了一个图表,我想处理如下:
每个节点都有一个名称并与一个数字(一个整数)相关联。我想按升序对数量进行排序,并将节点的关联顺序放入一个列表中(我使用 HashMap
将两者关联起来),第一个节点将是最小数量的节点。
我尝试使用以下方法:
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));
这是一种良好做法的好方法吗?否则,为了实现上述目标,这种方法的复杂性较低的替代方法是什么?
谢谢。