这个问题在这里已经有答案了:
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()方法中列出元素的顺序是相反的。
1条答案
按热度按时间wa7juj8i1#
Set
通常不为迭代器提供定义的顺序:元素不按特定顺序返回[…]。
Set.of
显式指定为返回无序Set
:集合元素的迭代顺序未指定,可能会发生更改。
Collectors.toSet
定义为构造未指定的Set
,这意味着Set
应用(见上文)。文档中没有定义任何可靠的顺序。实现在这里返回的任何命令都是有效的。