1
を示しています私はこれらに追加するマージとスプリット方式を作成しようとしています:マージ2つの順序付けられていない一般的な配列は
public interface ArrayListADT<T> extends Cloneable {
public boolean isEmpty();
public boolean isFull();
public int listSize();
public int maxListSize();
public void print();
public Object clone();
public boolean isItemAtEqual(int location, T item);
public void insertAt(int location, T insertItem);
public void insertEnd(T insertItem);
public void removeAt(int location);
public T retrieveAt(int location);
public void replaceAt(int location, T repItem);
public void clearList();
public int search(T searchItem);
public void remove(T removeItem);
}
マージ方法は、第三に2つの順不同配列リストを連結する必要があります。 2つのリストに共通するキーはありません。 3番目のリストは、リスト1と2のすべての項目を持つ必要があります。秩序も維持されるべきです。
public <T extends Comparable<T>> UnorderedArrayList<T> merge(UnorderedArrayList<T> list, UnorderedArrayList<T> list2){
for (int index2 = 0; index2 < list2.listSize(); index2++) {
for (int index1 = 0; ; index1++) {
if (index1 == list.listSize() || list.retrieveAt(index1) > list2.retrieveAt(index2)) {
list.add(index1, list2.get(index2));
break;
私はcompareToメソッドを実装する必要がありますか?
スプリット方法については、ここにあります。
public void split(UnorderedArrayList list, UnorderedArrayList list2, UnorderedArrayList list3, int key) {
int num = 0;
list.clearList();
list2.clearList();
for(int i = 0;i < list3.length; i++) {
num = list3.retrieveAt(i);
if(num <= key)
list.insertEnd(num);
else
list2.insertEnd(num);
私はnum = list3.retrieveAt(i);
エラーのエラーを取得しています。オブジェクトは、intに変換することはできません。それをintに型キャストする必要がありますか? (であることが必要であるT
)
'UnorderedArrayList'とは何ですか?それは 'ArrayListADT'ですか? –
これは 'ArrayListClass'から拡張されたクラスで、' ArrayListADT'を実装する抽象クラスです。 @TJ – DJ2