[英]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.