【发布时间】:2025-11-21 17:00:02
【问题描述】:
所以我正在为我正在为学校工作的程序开发广度优先搜索功能,当我通过给定节点的传出边缘时,凭借我如何通过我的可能边缘,它看起来像这样:
[[A, 1], [D, 1], [C, 2], [D, 2]]
但我真正想要的是:
[[A, 1], [C, 2], [D, 1], [D, 2]]
其中第一个索引是边缘指向的节点的名称,第二个索引是边缘的标签。本质上,我想按字母顺序遍历这些边缘,首先按节点名称,然后按标签名称,但我不知道该怎么做,因为 Collections.sort() 不适用于 2D ArrayList。关于排序的好方法的任何指针/想法?谢谢大家!
编辑:我使用的是 JRE 1.7,而不是 1.8
【问题讨论】:
-
[[A, 1], [D, 1], [C, 2], [D, 2]]不是ArrayList<ArrayList<String>>的有效示例您可以使用.stream().sorted()按自然顺序排序,甚至定义自定义Comparator -
你可以使用 HashMap 而不是 ArrayList...
-
RoiEX,不能使用 HashMap,因为他可以有一个具有不同值的 Key,或者必须是一个 HashMap
...这使得一些简单的结构变得相当复杂。