两个集合Java Set <t>

时间:2016-03-18 00:24:10

标签: java set union

我现在正在从事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             
    }
}

每次我尝试返回任何内容时,它都会告诉我它不是兼容类型,因为实例变量是ArrayListUnionSet。有没有人之前做过这个或者可以提供一些技巧?

1 个答案:

答案 0 :(得分:2)

根据定义,集合是唯一元素的集合。不允许多重性意味着元素可能重复。

但是,这不是对ArrayList的限制,因此包裹ArrayList的集合需要一些额外的逻辑来确保它没有.equals()计算到的两个元素真。

如何实现union()的一般概述是遍历两个集合中的所有元素。但是,在将元素添加到新集合之前,请确保集合中没有元素与它相等。