栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在使用流时创建排序集

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在使用流时创建排序集

在非排序集中谈论顺序是没有意义的。

TreeSet
如果您想要按年龄排序的套装,则应该使用类似的方法。

Comparator<User> byAge = Comparator.comparingInt(User::getAge);Supplier<TreeSet<User>> user = () -> new TreeSet<User>(byAge);TreeSet<User> userSet = users.stream().collect(Collectors.toCollection(user));

如果上面的代码对您来说很丑陋,您也可以将当前的用户集添加到中

TreeSet
,但是还会有一个复制步骤。

使用a

TreeSet
和a
之间的主要区别在于
linkedHashSet
维护排序顺序。使用
TreeSet
,在添加新用户时,将保持排序。使用
linkedHashSet
,添加新用户可能会破坏按年龄排序的顺序,因为它
linkedHashSet
仅保持插入顺序。

编辑:

根据以下@Federico的评论,

TreeSet
实际对象将使用其比较器来确定
User
对象的相等性。如果您想首先通过方法删除所有重复的用户
equals()
,那么我们可以先将所有用户添加到中
HashSet
,然后使用上述方法将其添加到中
TreeSet

Set<User> set = new HashSet<>(users);   // remove duplicates via equalsTreeSet<User> userSet = set.stream().collect(Collectors.toCollection(user));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/431192.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号