是否有一个标准的Java(1.5+)实现(即没有第三方)的集合允许我将多个集合粘合到一个集合中?
这是一个草图,它是如何工作的:
final SomeCollection x = new SomeCollection();
final ArrayList a = new ArrayList();
a.add("first");
assert(a.size() == 1);
x.embed(a); // don't know for sure, if this exists.
assert(x.size() == 1);
a.add("second");
assert(a.size() == 2);
assert(x.size() == 2); // the other array is used as a backend-collection.
final ArrayList b = new ArrayList();
b.add("third");
assert(b.size() == 1);
x.embed(b);
assert(x.size() == 3); // x is a combination of the other two lists.
谢谢!
答案 0 :(得分:2)
没有一个标准集合用你所遵循的语义来嵌套集合。
答案 1 :(得分:1)
一,我不确定X是否是ArrayList对象的集合,或者X是否是在添加到A的元素后更改的集合。您应该在代码中添加一些类型安全(和自我文档),即
final List<String> x = new ArrayList<String>();
final List<String> a = new ArrayList<String>();
a.add("first");
assert(a.size() == 1);
两个,集合(带有s)充满了“支持”另一个集合,例如
Collections.unmodifiableCollection(Collection<? extends T> c)
答案 2 :(得分:0)
如果你提到的'SomeCollection'类是java.util.Collection类型,那么你可以添加任何其他集合。 参见例如。 您可以按如下方式组合两种不同类型的集合。
Vector v = new java.util.Vector();
ArrayList alist = new java.util.ArrayList();
v.addAll(alist);