sql >> データベース >  >> NoSQL >> MongoDB

Mongodbjavaのindexoutofboundsexception

    将来の訪問者のための単なる参照fooという配列があるとします。 これには10個のアイテムが含まれています。次のコードを使用して反復しようとするとどうなりますか?:

    for(int i = 0;i<=foo.length;i++){
       //some code that uses foo[i] here
    }
    

    答えはIndexOutOfBoundsExceptionです。 理由は簡単です。前に述べたように、foo 10個の要素が含まれているため、foo[0] to foo[9]を使用してそれらにアクセスできます。 配列のインデックス作成は0から始まるためfoo[9] 配列の最後の要素(10番目の要素)が含まれています `

    forではどうなりますか ループ?

    繰り返すときは、常にi<=foo.lengthを確認してください。 問題は、iの値が 9は式i<=foo.length(which means i<=10) trueと評価されます 。つまり、for ループは最後にもう一度実行されます。これがループで発生すると、foo[10]にアクセスしようとします。 これは存在しないため、IndexOutOfBoundsException

    したがって、配列を反復処理する場合は、常に i<foo.lengthを使用します

    あなたもそれを理解したので、あなたの問題の解決策はこれです:

    for(int i=0; i< field.length; i++){
        String[] field = allFields.split(",");
        String field1 = "$"+field[i];
        BsonField includeFields = Accumulators.first(field[i], field1);
        includeList.add(includeFields);
    }
    



    1. MongoDBallowDiskUseが機能していません。

    2. SpringMongoTemplate-コレクション内の正規表現で検索

    3. SCUMM:ClusterControlのエージェントベースのデータベース監視インフラストラクチャ

    4. 単一サーバー上の複数のLaravelアプリケーションのキューにRedisを使用する