是否可以通过比较器获得集合过滤的subSet,并对父集合及其子集进行每次更新都会得到所有更改?
发布于 2016-02-03 16:25:09
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]。
https://stackoverflow.com/questions/35152444
复制相似问题