gpt4 book ai didi

java - Collection.shuffle 不适用于 Map 键和 Map 值。我有一张 map 中的 map 。我想打乱最里面的 map

转载 作者:行者123 更新时间:2023-11-30 07:51:58 25 4
gpt4 key购买 nike

对于 idAndTags 的第二个条目,内部映射被打乱,但第一个条目则不然

第一次接近!

for (Map.Entry<String, Map<String, String>> entryOne : idAndTags.entrySet()) {

List keys = new ArrayList(entryOne.getValue().keySet());
System.out.println(keys);
Collections.shuffle(keys);
System.out.println(keys);
}

第二种方法!

for (Map.Entry<String, Map<String, String>> entryOne : idAndTags.entrySet()) {
shufTags = new HashMap<String, String>();
Map<String, String> tags = entryOne.getValue();
System.out.println(tags);
final List<String> vs = new ArrayList<String>(tags.values());
Collections.shuffle(vs);
final Iterator<String> vIter = vs.iterator();
for (String k : tags.keySet())
shufTags.put(k, vIter.next());
System.out.println(shufTags);
}

最佳答案

Map#.keySet()返回键集的 View ,不支持排序。随机播放它对 map 没有影响。

您无法更改 HashMap 的迭代顺序,但 LinkedHashMap 会按照插入顺序迭代自身,因此您可以将内部映射替换为 LinkedHashMap 并使用打乱的键集来驱动插入。

关于java - Collection.shuffle 不适用于 Map 键和 Map 值。我有一张 map 中的 map 。我想打乱最里面的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33237850/

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