学校のプロジェクトでネストされたクラスで問題が発生しています。現在、ジャグ配列のデータ構造にアイテムを挿入するメソッドを作成しようとしています。ネストされたクラスによって作成されたオブジェクトを使用して、挿入するインデックスを取得するために2D配列の場所を追跡します。ただし、次の行に「メソッドfindEnd(E)がタイプRaggedArrayList.ListLocに対して未定義です」というエラーが表示されます。
insertLoc.findEnd(item)
私はstackoverflowとWebの両方で広範囲に検索しましたが、まだ答えが見つかりませんでした。私がそれを見逃し、これが冗長である場合(「タイプの質問に対して未定義のメソッド」がたくさんあることを私は知っています)、私は謝罪します。
関連するコードは次のとおりです>>
ListLocオブジェクトのネストされたクラス:
private class ListLoc {
public int level1Index;
public int level2Index;
public ListLoc() {}
public ListLoc(int level1Index, int level2Index) {
this.level1Index = level1Index;
this.level2Index = level2Index;
}
public int getLevel1Index() {
return level1Index;
}
public int getLevel2Index() {
return level2Index;
}
// since only used internally, can trust it is comparing 2 ListLoc's
public boolean equals(Object otherObj) {
return (this == otherObj);
}
}
一致するアイテム(ListLocネストされたクラスの一部ではない)の最後のインデックスを見つけるメソッド:
private ListLoc findEnd(E item){
E itemAtIndex;
for (int i = topArray.length -1; i >= 0; i--) {
L2Array nextArray = (L2Array)topArray[i];
if (nextArray == null) {
continue;
} else {
for (int j = nextArray.items.length -1; j >= 0; j--) {
itemAtIndex = nextArray.items[j];
if (itemAtIndex.equals(item)) {
return new ListLoc(i, j+1);
}
}
}
}
return null;
}
不規則な配列に新しい値を追加しようとするメソッド:
boolean add(E item){
ListLoc insertLoc = new ListLoc();
insertLoc.findEnd(item);
int index1 = insertLoc.getLevel1Index();
int index2 = insertLoc.getLevel2Index();
L2Array insertArray = (L2Array)topArray[index1];
insertArray.items[index2] = item;
return true;
}
ご入力いただきありがとうございます。