2017-03-29 1 views
-3

をすべてをダウンシフトするので、私はそれを削除した後、すべてをダウンシフトすることによって、配列から要素を削除しようとしている、これは私がこれまでは、削除するJavaの形態として配列で反復可能な

for (int i = 0; i < numShapes; i++){ 
    shapes[i] = shapes[i-1]; 
    numShapes--; 
} 
持っているものです

はので、私の配列はJoe Jen Jess

が含まれている場合、私はそれが

Joe Jess null

のようになりたい私の.next()と.remove()メソッドを呼び出し

私の.next()メソッドは、私のイテレータ内の次のアイテムを返し、私の削除方法は、項目

remove method 
public void remove() throws IllegalStateException { 
    if (cursor <= numShapes-1 || cursor == 0){ 
     throw new IllegalStateException(); 
    } 
    if (numShapes == 0){ throw new NoSuchElementException(); } 

    for (int i = 0; i < numShapes; i++){ 
    shapes[i] = shapes[i-1]; 
    numShapes--; 
} 

の実装が正しい削除さを除去することを意味しますか?一度取り除かれた要素を適切にシフトしますか?

+0

あなたの具体的な質問は何ですか?私は上記のあなたの投稿には誰も見ません。 –

+0

あなたはどんな問題を抱えていますか? – Sim

+0

remove()メソッドが正しくシフトしない – emmynaki

答えて

0

あなたが削除し、そのインデックスを使用して他の要素をシフトし、サンプルコード以下のようにnullとして最後の値を設定したい要素のインデックスを見つける必要がある:

int index = -1; 
String searchStr = "FindMe"; 

for (int i = 0; i < array.length; i++) { 
    if (searchStr.equals(array[i])) { 
     index = i; 
     break; 
    } 
} 

if (index > -1) { 
    for (int i = index; i < array.length - 1; i++) { 
     array[i] = array[i+1]; 
    } 
} 

array[array.length - 1] = null; 
関連する問題