1

我在 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));

这是一种良好做法的好方法吗?否则,实现上述目标的这种方法的复杂性较低的替代方案是什么?

谢谢。

4

0 回答 0