需要查找基本操作集并集/交集/对称差分JAVA
需要完成此实现才能使用UseSet类。不确定我所实现的是否100%正确 但是我需要工会和SysDiff的帮助需要查找基本操作集并集/交集/对称差分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 =
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
对于您的类名称来说是一个非常不幸的选择-大多数人会认为您指的是。。。