需要查找基本操作集并集/交集/对称差分JAVA

需要查找基本操作集并集/交集/对称差分JAVA,java,set-operations,Java,Set Operations,需要完成此实现才能使用UseSet类。不确定我所实现的是否100%正确 但是我需要工会和SysDiff的帮助 public class Set { private ArrayList<Integer> elements; public Set() { elements = null; } public Set(ArrayList<Integer> s) { int i; elements =

需要完成此实现才能使用UseSet类。不确定我所实现的是否100%正确

但是我需要工会和SysDiff的帮助

public class Set
{
   private ArrayList<Integer> elements;

   public Set()
   {
       elements = null;
   }

   public Set(ArrayList<Integer> s)
   {
       int i;
       elements = new ArrayList<Integer>();
       for(i=0; i<s.size(); i++)
          elements.add(s.get(i));
   }

   public Set(int[] s)
   {
       int i;
       elements = new ArrayList<Integer>();
       for(i=0; i<s.length; i++)
          elements.add(s[i]);
   }

   public String toString()
   {
       //implement this method
   }

   public boolean isElement(int elt)
   {
       int i
    for (i=0; i < elements.size(); i++)
    {
        if (elements.get(i) == elt)
        return true;
    }
    return false

   }

   public int cardinality()
   {
       return elements.size();
   }

   public Set intersect(Set s)
   {
    Array list <interger> iset = new Array(ist<interger>();
    int i;
    for (i=0; i<elements.size(); i++)
    {
        if (s2.isElement (elements.get(i)))
        iSet.add(elements.get(i)));
   }
    return new set(iset)
}

   public Set union(Set s)
   {
       //implement this method
   }

   public Set symDiff(Set s)
   {
       //implement this method
   }
公共类集合
{
私有数组列表元素;
公共集()
{
元素=空;
}
公共集(ArrayList s)
{
int i;
元素=新的ArrayList();

对于(i=0;i您是否考虑过使用Java提供的类中的一个,例如?大多数基本集合操作可以更容易地实现,使用这样的类作为起点

例如:

  • 您的
    isElement()
    方法在中命名为
    contains()
    /

  • cardinality()
    size()

  • intersect
    可以使用
    retainAll()实现

  • union()
    可以使用
    addAll()实现

  • symDiff()
    可以使用
    removeAll()
    从两个集合的并集中删除相交元素


请参阅有关使用java set接口执行数学集合操作的Oracle文档:


您可以轻松地进行联合和交叉。

Java有其基本实现。有关更多功能,请尝试Apache Commons库:

Commons Collections试图通过提供新的接口、实现和实用程序来构建JDK类

CollectionUtils类对于您的任务特别有用(例如,addAll:

)

您可以在此处查看实施和想法:


作为旁注,
Set
对于您的类名称来说是一个非常不幸的选择-大多数人会认为您指的是。。。