首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用比较器求set的subSet

用比较器求set的subSet
EN

Stack Overflow用户
提问于 2016-02-02 11:39:56
回答 1查看 1.1K关注 0票数 5

是否可以通过比较器获得集合过滤的subSet,并对父集合及其子集进行每次更新都会得到所有更改?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 16:25:09

NavigableSet.subSet()调用可能会做您想做的事情。NavigableSet是一个排序集,它能够创建作为底层集的“视图”的子集。这些视图由您提供的值(使用在集合创建时提供的Comparator )或值的自然顺序所限制。最常见的实现是TreeSet。例如,您可以这样做:

代码语言:javascript
复制
    NavigableSet<String> set = new TreeSet<>(
        Arrays.asList("b", "e", "a", "d", "c"));
    System.out.println(set);

其结果是[a, b, c, d, e]就像您所期望的那样。现在您可以创建一个子集,例如从"b“到"d”的子集:

代码语言:javascript
复制
    NavigableSet<String> set2 = set.subSet("b", true, "d", true);
    System.out.println(set2);

这里的输出是[b, c, d]。现在,如果将一些元素添加到边界内外的原始集合中,则子集视图将更改为只包含在其中添加的内容:

代码语言:javascript
复制
    set.add("a1");
    set.add("c1");
    set.add("e1");
    System.out.println(set2);

输出为[b, c, c1, d]

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35152444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档