为了账号安全,请及时绑定邮箱和手机立即绑定

Collectors.toSet 更改顺序

Collectors.toSet 更改顺序

慕桂英546537 2022-06-30 19:08:31
我在字符串数组的流处理中看到了一个有趣的行为。我正在做这样的事情String s =  "1_2_string";String[] arr = s.split("_");final Set<String> CAST_PATTERN = Set.of("string", "string2");Arrays.stream(arr)        .filter(id -> !CAST_PATTERN.contains(id))        .map(Long::valueOf)        .collect(Collectors.toSet());预期结果应该是一个集合 [1,2] 但实际结果是 [2,1] Collectors.toSet() 创建一个 HashSet 而不是一个 SortedSet,所以它不应该弄乱数据的顺序。不知道为什么!!
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

通常,Set 对迭代顺序没有任何保证。

如果需要定义顺序,可以使用Collectors.toCollection(TreeSet::new)(用于元素的自然顺序)或Collectors.toCollection(LinkedHashSet::new)(用于插入顺序)。


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 884 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号