我现在正在从事Java家庭作业,而且我遇到了一些问题;试图在两套之间找到联盟。
我的教授将联盟描述为
两组A和B的并集是通过组合得到的组合 每个成员都允许多重性。
我不太明白他的意思是不允许多重性。
在搜索谷歌的过程中,我发现联盟基本上只是梳理了两个,这不应该很难,但我一直都会遇到我不太了解的错误。
我会发布与下面所需代码有关的所有内容。
public class Set<T extends Comparable<T>>
{
// A list of elements contained in the set
private ArrayList<T> elements;
// Creates an empty set
public Set()
{
elements = new ArrayList();
}
public Set<T> union(Set<T> s)
{
// code here
}
}
每次我尝试返回任何内容时,它都会告诉我它不是兼容类型,因为实例变量是ArrayList
而Union
是Set
。有没有人之前做过这个或者可以提供一些技巧?
答案 0 :(得分:2)
根据定义,集合是唯一元素的集合。不允许多重性意味着元素可能不重复。
但是,这不是对ArrayList
的限制,因此包裹ArrayList
的集合需要一些额外的逻辑来确保它没有.equals()
计算到的两个元素真。
如何实现union()
的一般概述是遍历两个集合中的所有元素。但是,在将元素添加到新集合之前,请确保集合中没有元素与它相等。