在java中如何在集合中合并集合?
我想把两个集合元素合并成一个在java中如何在集合中合并集合?,java,merge,Java,Merge,我想把两个集合元素合并成一个 public static <T> Set<Set<Long>> merge(Set<Set<Long>> splitSets, long a, long b) { Iterator<Set<Long>> it1 = splitSets.iterator(); for (long i=0; i<splitSets.size(); i++) {
public static <T> Set<Set<Long>> merge(Set<Set<Long>> splitSets, long a, long b) {
Iterator<Set<Long>> it1 = splitSets.iterator();
for (long i=0; i<splitSets.size(); i++) {
HashSet<Long> s1=null,s2 = null,s3 = null;
for (long j=0; it1.hasNext(); j++) {
s1=(LinkedHashSet<Long>) it1.next();
if(s1.contains(a)){
s2=s1;
}
if(s1.contains(b)){
s3=s1;
}
}
if(s2!=null && s3!=null){
s2.addAll(s3);
splitSets.remove(s3);
}
}
return splitSets;
}
公共静态集合合并(集合拆分集合、长a、长b){
迭代器it1=splitSets.Iterator();
对于(长i=0;i(LinkedHashSet)it1.next()
你怎么知道每个内部的集合都是LinkedHashSet
类型?你唯一能确定的是,那是一个集合,但不是哪种集合。试着找到一些关于不相交集合的东西:,我想这就是你想要为LinkedHashSet实现的东西所有元素都是LinkedHashSet的仅键入。在我的主代码段中,它仅是LinkedHashSet。@devendrak353您的merge
不知道这一点,也不应该假设这一点。如果该方法试图强制转换到Set
接口的特定实现,则接受接口类型Set
没有意义。事实上,这是危险的。