2017-10-05 15 views
0

私はJavaを学んでおり、私の問題を理解することはできません。リストから削除する!= 2

私はサイズが異なるリストを持っています。私は何をしたい、サイズは= 2

あるまで、そのリストから削除されている私は何を持っていることは次のとおりです。

int content = list.size() - 1; 

while(list.size() !=2){ 
list.remove(content); 
} 

しかし、私は例外を取得:はIndexOutOfBoundsExceptionを。インデックス9、サイズ9

はわずか2つの要素が残っているまで、私は、リストを反復処理しておくことができますどのように

任意の提案を(このインデックスは、サイズは内容に応じて、時々変更されますか)?

サイズはあなたが削除するときcontentを減少させる必要がある2.

  • よりも、最初は小さい場合

  • +4

    あなたは 'content'を減らす必要があります。それ以外の場合、値は変更されません。 – jsheeran

    答えて

    4

    本当にあなたが

    while (list.size() > 2){ 
        list.remove(content--); 
    } 
    
    1. > 2を必要とするおかげで、アルゴリズムが安定していること要素。

    1

    それはあなたが次の実装を使用することができます。2.

    int content = list.size() - 1; 
    
    while(list.size() !=2){ 
        list.remove(content); 
        content = content -1; 
    } 
    
    1

    になることは決してありませんので、あなたは、コンテンツを減らさことはありません。リストには、1つのまたはゼロの要素が含まれている場合

    while(list.size() !=2){ 
        list.remove(list.size() - 1); 
    } 
    

    しかし、これは動作しないでしょう。これらのケースは以下のようにカバーすることができます。

    while(list.size() > 2){ 
        list.remove(list.size() - 1); 
    } 
    
    関連する問題