2010-08-30 30 views
6

Tôi muốn biết: Bộ sưu tập trong Java là gì?Bộ sưu tập java là gì?

+3

đã chỉnh sửa chỉnh sửa trước đó, không có điểm nào tạo thẻ "googleable" –

+3

Tôi muốn có một huy hiệu "Googeable" – Daniel

+2

Là một người đấu tranh với việc học chính mình. Hãy để tôi đưa ra một số lời chỉ trích mang tính xây dựng. Làm bài tập ở nhà của bạn trước và cho người khác xem quả của lao động đó. Google câu hỏi này đầu tiên. Sau đó, tạo một số ví dụ cụ thể và xem liệu những người khác có thể phê bình sự hiểu biết của bạn hay không. Bằng cách này, bạn xây dựng sự tôn trọng cho chính mình và tôn trọng người khác. May mắn nhất. Tất cả chúng ta đều học. – GeekyOmega

Trả lời

2

Đây là lớp triển khai giao diện java.util.Collection.

Có một nhánh khác cho những người triển khai java.util.Map.

Đây là cơ sở cho các cấu trúc dữ liệu trong Java: List, Set, LinkedList, HashMap, TreeMap vv

9

Collection là một giao diện trong Java API, và according to the docs nó là ...

Giao diện gốc trong phân cấp bộ sưu tập. Một bộ sưu tập đại diện cho một nhóm các đối tượng, được gọi là các thành phần của nó. Một số bộ sưu tập cho phép các phần tử trùng lặp và các bộ sưu tập khác thì không. Một số được đặt hàng và những người khác không có thứ tự. JDK không cung cấp bất kỳ triển khai trực tiếp nào của giao diện này: nó cung cấp việc triển khai các giao diện con cụ thể hơn như Set và List. Giao diện này thường được sử dụng để truyền các bộ sưu tập xung quanh và thao tác chúng ở nơi có tính tổng quát tối đa.

ví dụ thường gặp của bộ sưu tập là: ArrayList, HashSet, LinkedList, StackVector.

+0

cảm ơn bạn đã cho tôi biết, plz giải thích cho tôi lớp bên trong và lớp ngoài là gì trong java – mihir

+4

Sử dụng trường này để thêm nhận xét vào câu trả lời. Sử dụng liên kết * Đặt câu hỏi * để đặt câu hỏi mới :) – aioobe

2

Trích dẫn Java API "Bộ sưu tập - đôi khi được gọi là vùng chứa - chỉ đơn giản là một đối tượng nhóm nhiều phần tử vào một đơn vị duy nhất."

22

Thông thường một thể hiện của java.util.Collection (mặc dù java.util.Map là chính thức cũng là một phần trong khuôn khổ bộ sưu tập)

Mặc dù giao diện Bộ sưu tập có thể được thực hiện trực tiếp, thường là mã khách hàng sẽ sử dụng một thực hiện một trong các giao diện phụ: Set , List, Queue/Deque

Dưới đây là một số mã mẫu (ở phía bên trái, bạn sẽ thường thấy giao diện và bên phải lớp triển khai).

Sets không lưu trữ các bản sao, tất cả các yếu tố của họ là duy nhất:

final Set<String> basicSet = new HashSet<String>(); 
basicSet.add("One"); 
basicSet.add("Two"); 
basicSet.add("One"); 
basicSet.add("Three"); 
System.out.println(basicSet.toString()); 
// Output: [Three, One, Two] 
// (seemingly random order, no duplicates) 

SortedSets là một trường hợp đặc biệt của bộ lưu trữ các yếu tố trong một trật tự quy định:

final SortedSet<String> sortedSet = new TreeSet<String>(); 
sortedSet.add("One"); 
sortedSet.add("Two"); 
sortedSet.add("One"); 
sortedSet.add("Three"); 
System.out.println(sortedSet.toString()); 
// Output: [One, Three, Two] 
// (natural order, no duplicates) 

Lists cho phép bạn lưu trữ một giá trị nhiều lần và truy cập hoặc sửa đổi thứ tự chèn:

final List<String> strings = new ArrayList<String>(); 
strings.add("Two"); 
strings.add("Three"); 
strings.add(0, "One"); 
strings.add(3, "One"); 
strings.add("Three"); 
strings.add(strings.size() - 1, "Two"); 
System.out.println(strings); 
// Output: [One, Two, Three, One, Two, Three] 

Cũng có một cách viết tắt thực tế để xác định danh sách:

List<String> strings = Arrays.asList("One", "Two", "Three"); 
// this returns a different kind of list but you usually don't need to know that 

v.v.

Để có được một sự hiểu biết tốt hơn, đọc The Collections Trail từ Sun Java Tutorial (trực tuyến), hoặc Java Generics and Collections bởi Maurice Naftalin và Philip Wadler

9

Tôi nghĩ rằng câu hỏi này là trả lời tốt nhất trong một cảm giác phi lập trình.

Giả sử bạn có 5 quả bóng và bạn muốn di chuyển chúng dễ dàng. Bạn nhận được một túi và đặt 5 quả bóng bên trong của nó. Túi hoạt động như một thùng chứa. Bây giờ bạn có thể di chuyển túi này xung quanh, và vì vậy khá dễ dàng trong 5 quả bóng di chuyển với nó.

Chỉ cần đặt, bạn giữ không hoặc nhiều đối tượng, bên trong một đối tượng khác để dễ dàng truy xuất.

Các vấn đề liên quan