我搜索了互聯網,我無法找到我的問題的答案。我正在編寫我自己的數組列表結構。我希望使它成爲一個有序的數組,它將接收一個來自聯繫人類的對象,並按姓氏排序。我有這個到目前爲止,但我不能管理如何做add()方法。與可比較的Java ArrayList
public class SortedArrayList <E extends Comparable<E>> implements SortedList<E> {
private int currentSize;
private E elements[];
@SuppressWarnings("unchecked")
public SortedArrayList(int initialCapacity){
if(initialCapacity < 1){
throw new IllegalArgumentException("Need at least one element");
}
this.currentSize = 0;
this.elements = (E[]) new Object[initialCapacity];
}
@Override
public Iterator<E> iterator() {
// TODO Auto-generated method stub
return new ListIterator<E>();
}
@Override
public boolean add(E obj) {
if(obj == null){
throw new IllegalArgumentException("object cannot be null.");
}
if(this.currentSize == this.elements.length){
reAllocate();
}
E temp[];
temp = elements;
for(int i=0; i<= this.currentSize; i++){
//if(obj.compareTo(elements[i]) < 0){
//int target =i;
//elements[i+1] = temp[i];
//elements[target] = obj;
//break;
}
}
this.elements[this.currentSize++] = obj;
return true;
}
如果您告訴我「E」代表哪個類並顯示其結構,我可以提出更好的方法。 –
看看如何使用'Arrays.binarySearch'來確定插入應該發生的元素[]中的確切索引,然後編輯類似於'java.util.ArrayList'內發生的數組。 – cambecc
E將是來自Class聯繫人的姓氏(字符串)。 –