MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

indexoutofboundsexception trong Mongodb java

Chỉ là tài liệu tham khảo cho những khách truy cập trong tương lai Giả sử chúng tôi có một mảng có tên là foo trong đó có 10 mục. Điều gì sẽ xảy ra nếu chúng tôi cố gắng lặp lại bằng đoạn mã sau ?:

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

Câu trả lời là IndexOutOfBoundsException Lý do rất đơn giản, như đã nói trước đây foo chứa 10 phần tử có nghĩa là bạn có thể truy cập chúng bằng cách sử dụng foo[0] to foo[9] Vì lập chỉ mục mảng bắt đầu từ 0 foo[9] chứa phần tử cuối cùng trong mảng của bạn (phần tử thứ 10) `

Điều gì xảy ra trong for vòng lặp?

Khi lặp lại, bạn luôn kiểm tra i<=foo.length để tiếp tục. Vấn đề là khi giá trị của i là 9 biểu thức i<=foo.length(which means i<=10) đánh giá thành true .Điều đó có nghĩa là for vòng lặp sẽ chạy lần cuối. Khi điều này xảy ra trong vòng lặp của bạn, bạn sẽ cố gắng truy cập foo[10] không tồn tại và do đó IndexOutOfBoundsException

Vì vậy, hãy nhớ rằng khi bạn muốn lặp lại một mảng, bạn luôn luôn sử dụng i<foo.length

Vì vậy, như bạn cũng đã tìm ra giải pháp cho vấn đề của bạn là:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Windows IoT - Mongodb - Raspberry

  2. Bạn có cần JPA khi sử dụng MongoDB không?

  3. MongoDB 2.4.1 hiện đã có trên ScaleGrid

  4. phạm vi mongodb mapreduce - ReferenceError

  5. Cơ sở dữ liệu NoSQL nào để sử dụng cho Chuỗi thời gian thưa thớt như dữ liệu?