当前位置: 首页 > 知识库问答 >
问题:

收藏家。设置变更单[重复]

令狐昂雄
2023-03-14

我在字符串数组的流处理中看到了一个有趣的行为。

我在做这样的事

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]。toSet()创建一个HashSet而不是SortedSet,所以它不应该扰乱数据的顺序。不知道为什么!!

共有1个答案

雍宇定
2023-03-14

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

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

 类似资料:
  • 以下面这行代码为例: 我想要一个。用一个调试器来调试代码,我确实得到了一个。我看了一下来观察下面的代码: 合同保证了一个,实现决定了一个;似乎是合理的。但是,我的实现需要一个保证的恒定时间查找,而不仅仅是任何旧的。如果的实现决定使用一个,这完全在它的权利范围内,我的实现就受到了损害。 这个问题的最佳解决方案是什么?

  • 商家接收消息配置 后台-设置-消息管理-商家接收消息配置 1.商家接收消息手机号:请输入通知人手机号,多个手机号之间用英文逗号“,”隔开 2.商家接收消息邮箱号:请输入通知人邮箱,多个邮箱之间用英文逗号“,”隔开 3.商家接收模板消息用户:选择会员

  • 问题内容: 我有两个定义如下的实体bean(删除了无关的东西): CriticalItems定义如下: 在我的DAO代码中-我有以下方法: 当我加载MasterItem时,它会正确加载,并且还会按照指示加载CriticalItems Set中的数据。然后,我将此数据发送到我的UI,并获得更新的副本,然后尝试将其保留。用户更新MasterItem对象中的字段,但不触摸CriticalItems Se

  • 我正在制作的网站可以在德语和英语之间切换显示语言。Shaka player似乎支持本地化切换,但我无法用英语以外的任何语言显示该播放器。尝试在新沙卡上使用changeLocale。用户界面。本地化实例,但它似乎对玩家没有影响。 如果能在不同地区之间切换,我将不胜感激。

  • 我正在学习Kotlin,它看起来很可能我想在下一年把它作为我的主要语言。然而,我不断得到矛盾的研究,Kotlin有或没有不可变的集合,我试图弄清楚我是否需要使用Google Guava。 有人能给我一些指导吗?它是否默认使用不可变集合?哪些运算符返回可变或不可变的集合?若否,有否计划实施?

  • 收藏资讯 取消收藏资讯 获取收藏资讯 收藏资讯 POST /news/{news}/collections Response Headers Status: 201 Created 取消收藏资讯 DELETE /news/{news}/collections Response Headers Status: 204 No Content 获取收藏资讯 GET /news/collectio