我設計了使用ArrayList的新IntSet類。首先,我通過ArrayList擴展Intset,然後開始實現方法。我在union()方法中遇到了一些問題。這裏是我的代碼...我的Intset類有什麼問題?
public class IntSet extends ArrayList<Integer>{
private static final long serialVersionUID = 1L;
private ArrayList<Integer> intset;
public IntSet(){
this.intset = new ArrayList<Integer>();
}
public IntSet(ArrayList<Integer> intset){
this.intset = intset;
}
public void insert(int x){
this.intset.add(x);
}
@Override
public Integer remove(int x){
int index = intset.indexOf(x);
this.intset.remove(index);
return 1;
}
@Override
public int size(){
return this.intset.size();
}
@Override
public Integer get(int index){
return this.intset.get(index);
}
public boolean member(int x){
if(intset.indexOf(x)==-1) return false;
else return true;
}
public IntSet union(IntSet a){
IntSet intersectSet = new IntSet();
intersectSet.insert(0);
intersectSet.insert(1);
System.out.println(intersectSet.size());
System.out.println(intersectSet.contains(1));
for(int i=0; i<a.size(); i++){
}
return intersectSet;
}
public String toString(){
if(intset.size()==0) return "[]";
String s = "[" + intset.get(0).toString();
for(int i=1; i<intset.size(); i++){
s += "," + intset.get(i).toString();
}
return s += "]";
}
}
在方法
union(IntSet a);
我建設工程新INTSET對象然後添加2值(0,1)轉換成intersectSet變量。
intersectSet.insert(0);
intersectSet.insert(1);
然後我打印尺寸的intersectSet它表明我2這是正確的!
但是當我需要檢查intersectSet是否有1?它表明我錯了。
System.out.println(intersectSet.contains(1));
其實應該告訴我正確的,因爲在intersectSet有整數1
什麼錯我的代碼,我應該爲INTSET類擴展的ArrayList?
爲什麼你'擴展ArrayList'而不是在你的構造函數中'this.intset = new ArrayList ()',其餘代碼你不需要擴展你的類。 –
jigfox
2010-08-29 10:04:48