gpt4 book ai didi

java - 如何对 map 进行排序或我需要遵循哪种遍历方法?

转载 作者:行者123 更新时间:2023-12-02 11:54:42 25 4
gpt4 key购买 nike

我只想得到一个排序的 map ,我的代码如下:

public class SubString {public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("string2");
list.add("STR_str2");
list.add("STR_str3");
getSequesce("STR_str1", list);
List<String> list1 = new ArrayList<>();
list1.add("STR_xyz");
list1.add("STR_ABC");
getSequesce("STR_str2", list1);
List<String> list3 = new ArrayList<>();
list3.add("Anukul");
list3.add("mittal");
getSequesce("STR_str3", list3);
List<String> list4 = new ArrayList<>();
list4.add("Test");
list4.add("STR_XYZ");
getSequesce("STR_ABC", list4);
List<String> list5 = new ArrayList<>();
list5.add("val");
list5.add("var");
getSequesce("STR_XYZ", list5);
List<String> list6 = new ArrayList<>();
list6.add("val6");
list6.add("valtest");
getSequesce("STR_free", list6);
List<String> list7 = new ArrayList<>();
list7.add("val6");
list7.add("STR_free");
getSequesce("STR_7", list7);

}private static void getSequesce(String string, List<String> list) {
Map<String, List<String>> map = new HashMap<>();
Map<String, List<String>> sortedMap = new TreeMap<>();
map.put(string, list);

for (Map.Entry<String, List<String> > itrMap : map.entrySet() ) {

}
}}

在第一次调用 getSequence 方法时,我放置了一个字符串“STR_str1”和一个列表。我只想将其添加到一个映射中,其中键是 STR_str1,其值是列表。但我的问题是我必须在 STR_str1 之前将 STR_str2 和 STR_str3 作为 map 中的键。同样,我必须将 STR_ABC 和 STR_XYZ 放在 STR_str2 之前。我只想要一个来自函数 getSequesce 的排序映射,以便我得到像

这样的输出

STR_free,列表6

“STR_7”,列表7

STR_XYZ,列表5

STR_ABC,列表4

STR_str3,列表3

“STR_str2”,列表1

“STR_str1”,列表

如果列表的值以 STR_ 开头,则该 STR_ 必须已在 map 中可用。

“STR_free”、list6“STR_XYZ”、list5“STR_str3”、list3 的位置可以在任何位置,因为它们不包含任何依赖项。

请帮我建议我可以采取什么方法。我有不会造成循环问题的数据。谢谢。

最佳答案

根据定义,Map 没有排序(与 set 相同),因此无法保证遍历顺序。然而有一个接口(interface)SortedMap及其实现(例如 TreeMap)。在这种情况下,您的键必须以有意义的方式实现 equals() 和 hashcode() 或实现 Comparable 接口(interface)。在您的情况下,您使用字符串作为键,并且字符串实现相当。所以你可以使用SortedMap

关于java - 如何对 map 进行排序或我需要遵循哪种遍历方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47680264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com