У меня есть домашнее задание, где мне нужно вставить или добавить новый элемент в ArrayList<Interger>
с соблюдением следующих условий:
-
Элемент должен возрастать.
-
Нет дубликатов элементов в
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));
что мне делать?
пс. моему инструктору нужно использовать только ArrayList