2012-07-04 32 views
56

Giả sử tôi chèn 5 chuỗi vào ArrayList. Thứ tự chèn và truy xuất từ ​​ArrayList có giống nhau không?Thứ tự chèn và truy tìm ArrayList

+15

Tại sao bạn không thử nó và tìm hiểu? –

+77

Có một điều để thử một lần. Đó là một cách khác để chắc chắn rằng nó sẽ giống nhau mỗi lần. – Suragch

Trả lời

45

Kiểm tra mã dưới đây và chạy nó:

public class ListExample { 

    public static void main(String[] args) { 
     List<String> myList = new ArrayList<String>(); 
     myList.add("one"); 
     myList.add("two"); 
     myList.add("three"); 
     myList.add("four"); 
     myList.add("five"); 

     System.out.println("Inserted in 'order': "); 
     printList(myList); 
     System.out.println("\n"); 
     System.out.println("Inserted out of 'order': "); 

     // Clear the list 
     myList.clear(); 

     myList.add("four"); 
     myList.add("five"); 
     myList.add("one"); 
     myList.add("two"); 
     myList.add("three"); 

     printList(myList); 
    } 

    private static void printList(List<String> myList) { 
     for (String string : myList) { 
      System.out.println(string); 
     } 
    } 
} 

Tạo đầu ra sau đây:

Inserted in 'order': 
one 
two 
three 
four 
five 


Inserted out of 'order': 
four 
five 
one 
two 
three 

Để biết thông tin chi tiết, xin vui lòng tham khảo tài liệu: List (Java Platform SE7)

+0

Cảm ơn. Đoạn mã giải thích rõ ràng khi được thực thi. – divinedragon

+5

+1 để bao gồm liên kết tới tài liệu Java giải thích rõ ràng rằng thứ tự. –

+15

Đầu ra mẫu sẽ hữu ích – nilesh

89

. ArrayList là một danh sách tuần tự . Vì vậy, thứ tự chèn và lấy là như nhau.

Nếu bạn thêm các thành phần trong khi truy xuất, thứ tự sẽ không giữ nguyên.

+0

Nếu OP "chèn" ở cuối, cũng được gọi là thêm. –

+3

@Kalai lời khuyên rất lạ trong phần ".... hoặc kết thúc" – Ray

+9

Câu thứ hai là không rõ ràng cho tôi! – Adil

33

Nếu bạn luôn thêm vào cuối, thì mỗi phần tử sẽ được thêm vào cuối và giữ nguyên cách đó cho đến khi bạn thay đổi.

Nếu bạn luôn chèn lúc bắt đầu, thì mỗi phần tử sẽ xuất hiện theo thứ tự ngược lại bạn đã thêm chúng.

Nếu bạn chèn chúng ở giữa, thứ tự sẽ là thứ khác.

0

Có nó vẫn giữ nguyên. nhưng tại sao không dễ dàng kiểm tra? Tạo một ArrayList, điền vào nó và sau đó lấy các phần tử!

+13

Đó là không có bằng chứng mặc dù. – YoTengoUnLCD

+0

Thứ tự giống nhau chỉ là một trong những kết quả kiểm tra có thể có. Nếu triển khai là hộp đen, cùng một thứ tự có thể là trường hợp cụ thể. Ví dụ là danh sách được sắp xếp. Nếu bạn thêm các phần tử vào danh sách được sắp xếp theo thứ tự đúng, bạn có thể nhận chúng theo thứ tự sắp xếp (chỉ là một trường hợp cụ thể), nhưng nếu bạn thêm chúng theo thứ tự ngẫu nhiên, bạn sẽ nhận được chúng. Kiểm tra ArrayList mà không kiểm tra việc thực hiện sẽ chỉ trạng thái "hầu hết có thể là giống nhau". – simar

6

Vâng, nó sẽ luôn luôn giống nhau. Từ số documentation

Gắn phần tử được chỉ định vào cuối danh sách này. Tham số: e yếu tố để được nối thêm vào danh sách này Returns: true (theo quy định của Collection.add (java.lang.Object))

ArrayList add() thực hiện

public boolean More ...add(E e) { 
    ensureCapacity(size + 1); // Increments modCount!! 
    elementData[size++] = e; 
    return true; 
} 
Các vấn đề liên quan