2009-05-14 10 views

Trả lời

54

Đó là O (1). Bạn có thể google cho mã nguồn và bạn sẽ đến như vậy:

Từ http://www.docjar.com/html/api/java/util/LinkedList.java.html

Tất cả các lớp học Bộ sưu tập Tôi đã xem xét tại cửa hàng một kích thước như là một biến và không lặp qua tất cả mọi thứ để có được nó .

+2

ctrl-click trong NetBeans sẽ tìm thấy nó thậm chí còn nhanh hơn google;) – Superole

12

O (1) như bạn sẽ nhận thấy có bạn nhìn vào mã nguồn ...

Từ LinkedList:

private transient int size = 0; 

...

/** 
* Returns the number of elements in this list. 
* 
* @return the number of elements in this list 
*/ 
public int size() { 
    return size; 
} 
+4

Và nếu bạn không sử dụng triển khai của Sun thì sao? http://en.wikipedia.org/wiki/Java_Class_Library#Alternative_implementations Tôi nghĩ câu hỏi của anh ta là liệu nó có được bảo đảm là O (1), chứ không phải là O (1) trong bất kỳ phiên bản/triển khai cụ thể nào. – jalf

+1

Việc triển khai đã giống nhau kể từ 1.2 khi LinkedList được giới thiệu, do đó, nó sẽ luôn là O (1) –

+5

Đây là từ Java 1.6. Điều này không phụ thuộc vào VM nhưng (theo lý thuyết) có thể khác với các phiên bản cũ của thư viện chuẩn. Kiểm tra nguồn phiên bản của bạn nếu bạn muốn chắc chắn 100%, nhưng không có nhà phát triển lành mạnh nào sẽ tính toán kích thước theo yêu cầu cho thứ gì đó như thế này, nơi mọi thứ trong bộ nhớ và bạn có thể kiểm tra nó khi cấu trúc được tạo. – Kris