如果我有2个通用集合,那么在C#中
SthCollection<Sth>
和
SthElseCollection<SthElse>
我可以创建第三个像
SthAndSthElseCollection<Sth, SthElse>
(其中Sth和SthElse是某些对象的列表)。
我怎样才能“迁移”到Java?我可以用枚举或其他集合类型吗?我很感激这种事情的良好联系。谢谢你的帮助
答案 0 :(得分:2)
org.apache.commons.collections.CollectionUtils有一个union方法,可以从2个集合创建一个Collection。
答案 1 :(得分:1)
如果两种类型之间唯一的常见超类型为Object
,则使用
List<Object> union = new ArrayList<Object>();
union.addAll(collectionOfSth);
union.addAll(collectionOfSthElse);
如果你想要的是Set,你可以对Set
做同样的事情。
请注意,这将创建一个副本,而不是两个集合的视图。如果您想要的是两组联合的视图,那么请查看Guava Sets.union()
或Iterables.concat()
。
答案 2 :(得分:0)
您可以使用Guava:
final Collection<T> col1 = ...;
final Collection<T> col2 = ...;
final Iterable<T> combined = Iterables.concat(col1, col12);