我有一個家庭作業,我需要插入或添加新elemment到ArrayList<Interger>
與以下條件,ArrayList的:插入元素與升序和重複元素
元素必須升序。
在
ArrayList<Integer>
插入方法運行無重複元件爲O(n)次。
這是我添加新元素前檢查重複元素的插入方法。
public void insert(int x){
//effect: Check duplicate elements if not x to the elements;
boolean found = false;
if(super.size()!=0){
for(int i=0; i<super.size(); i++){
if(super.get(i)==x){
found = true;
}
}
}
if(found){ return; }
else{ super.add(x); }
}
我該怎麼辦?謝謝。
此外
這裏是我的類名InSetExtra
public class IntSetExtra extends ArrayList<Integer> {
private static final long serialVersionUID = 1L;
public IntSetExtra(){
super();
}
public void insert(int x){
//effect: Check duplicate elements if not x to the elements;
boolean found = false;
if(super.size()!=0){
for(int i=0; i<super.size(); i++){
if(super.get(i)==x){
found = true;
}
}
}
if(found){ return; }
else{ super.add(x); }
}
public String toString(){
//effect: return string of this.
if(super.size()==0) return "[]";
String s = "[" + super.get(0).toString();
for(int i=1; i<super.size(); i++){
s += ", " + super.get(i).toString();
}
return s += "]";
}
}
,我需要插入元素的大尺寸,例如:
IntSetExtra a, b;
a = new IntSetExtra();
b = new IntSetExtra();
for(int i=0; i<30000; i++){ a.insert(2*i); }
for(int i=0; i<30000; i++){ a.insert(i); }
System.out.println("a sub = "+a.toString().substring(0, 37));
我應該怎麼辦?
ps。我的教師只需要使用ArrayList
是否有任何理由由ArrayList做到這一點?爲什麼不設置? – mhshams 2010-08-30 14:55:10
沒有必要爲方法調用添加'super.'(在這種情況下) – Ishtar 2010-08-30 15:07:56