根据关联值的顺序对值进行排序

时间:2021-05-04 15:15:53

标签: java graph collections

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

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

谢谢。

0 个答案:

没有答案