java—hashset的打印元素顺序

khbbv19g  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(444)

这个问题在这里已经有答案了

java设置保留顺序(13个答案)
三天前关门了。
在准备java考试的过程中,我遇到了这样一个问题:

public static Function<String, String> change = i -> {
        if (i.equals("Au"))
            return "Ne";
        else
            return i;
    };

Set<String> someStrings = Set.of("Au", "Ja", "Ta", "Cy", "Cu");
        someStrings = someStrings
                .stream()
                .map(change)
                .map(n -> n.substring(0, 1))
                .collect(Collectors.toSet());
        for (String s : someStrings) {
            System.out.print(s);
        }

对这个问题的回答表明印刷顺序很重要。但在这种情况下,如何确定印刷顺序呢?我唯一的猜测是set.of()方法中列出元素的顺序是相反的。

wa7juj8i

wa7juj8i1#

Set 通常不为迭代器提供定义的顺序:
元素不按特定顺序返回[…]。 Set.of 显式指定为返回无序 Set :
集合元素的迭代顺序未指定,可能会发生更改。 Collectors.toSet 定义为构造未指定的 Set ,这意味着 Set 应用(见上文)。
文档中没有定义任何可靠的顺序。实现在这里返回的任何命令都是有效的。

相关问题