繁体   English   中英

使用比较器获取set的subSet

[英]Get subSet of set by using comparator

是否有可能通过某个比较器获取集合过滤子集,并且父集合及其子集的每次更新都会得到所有更改?

NavigableSet.subSet()调用可能会执行您想要的操作。 NavigableSet是一个有序集,它能够创建作为基础集“视图”的子集。 这些视图受您提供的值限制,使用在集合创建时提供的Comparator或值的自然顺序。 最常见的实现是TreeSet 例如,您可以这样做:

    NavigableSet<String> set = new TreeSet<>(
        Arrays.asList("b", "e", "a", "d", "c"));
    System.out.println(set);

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

    NavigableSet<String> set2 = set.subSet("b", true, "d", true);
    System.out.println(set2);

这里的输出是[b, c, d] 现在,如果向原始集中添加一些元素,这些元素在边界内部和外部,则子集视图将更改为仅包括内部添加的内容:

    set.add("a1");
    set.add("c1");
    set.add("e1");
    System.out.println(set2);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM