Sự khác nhau giữa set và map
Java Map
Java Map là một phần của collections framework. Đối tượng Java Map được sử dụng để chứa các cặp khóa-giá trị. Java Map không thể chứa các khóa giống hệt nhau tuy nhiên các giá trị giống nhau thì được phép. Show
Các phương thức của Java MapChúng ta hãy cùng tìm hiểu một số phương thức quan trọng của Map.
Có một vài phương thức Java Map được giới thiệu trong Java 8.
Bạn sẽ để ý thấy tất cả các phương thức mới được thêm vào Java 8 Map interface là các phương thức mặc định với implementation. Điều này là để đảm bảo không xảy ra các lỗi biên dịch khi các class implement Map interface.
packagecom.journaldev.examples;
importjava.util.Collection; importjava.util.HashMap; importjava.util.Map; importjava.util.Map.Entry; importjava.util.Set;
publicclassMapExample{
publicstaticvoidmain(String[]args){
Map<String,String>data=newHashMap<>();
data.put("A","A");//putexample data.put("B","B"); data.put("C","C"); data.put("D",null);//nullvalue data.put(null,"Z");//nullkey
Stringvalue=data.get("C");//getexample System.out.println("Key=C,Value="+value);
value=data.getOrDefault("E","DefaultValue"); System.out.println("Key=E,Value="+value);
booleankeyExists=data.containsKey(null); booleanvalueExists=data.containsValue("Z");
System.out.println("keyExists="+keyExists+",valueExists="+valueExists);
Set<Entry<String,String>>entrySet=data.entrySet(); System.out.println(entrySet);
System.out.println("datamapsize="+data.size());
Map<String,String>data1=newHashMap<>(); data1.putAll(data); System.out.println("data1mappings="+data1);
StringnullKeyValue=data1.remove(null); System.out.println("data1nullkeyvalue="+nullKeyValue); System.out.println("data1afterremovingnullkey="+data1);
Set<String>keySet=data.keySet(); System.out.println("datamapkeys="+keySet);
Collection<String>values=data.values(); System.out.println("datamapvalues="+values);
data.clear(); System.out.println("datamapisempty="+data.isEmpty());
}
} Output của chương trình trên sẽ là:
Key=C,Value=C Key=E,Value=DefaultValue keyExists=true,valueExists=true [null=Z,A=A,B=B,C=C,D=null] datamapsize=5 data1mappings={null=Z,A=A,B=B,C=C,D=null} data1nullkeyvalue=Z data1afterremovingnullkey={A=A,B=B,C=C,D=null} datamapkeys=[null,A,B,C,D] datamapvalues=[Z,A,B,C,null] datamapisempty=true 1. Framework là gì?Khung công tác là một kiến trúc được xác định trước có chứa một tập hợp một số lớp và giao diện có thể được sử dụng trực tiếp mà không cần bất kỳ sửa đổi nào. 2. Khung Bộ sưu tập là gì?Trong Java, tập hợp là một thực thể duy nhất đại diện cho một nhóm đối tượng và khung là một kiến trúc được xác định có chứa các giao diện và lớp. Do đó, khung công tác Bộ sưu tập Java là một kiến trúc xác định một định giao diện, lớp và thuật toán. Khung này có sẵn từ JDK 1.2. Nó cũng có thể thực hiện các hoạt động như tìm kiếm, chèn, sắp xếp, xóa, thao tác, v.v. 3. Lớp Collections là gì?Collections là một lớp trong Java là một phần của gói java.util và chứa nhiều phương thức tĩnh khác nhau mà chúng ta có thể sử dụng để thực hiện các thao tác trên Collections. Nó cũng chứa các phương thức cho các thuật toán khác nhau như phân loại, tìm kiếm nhị phân, v.v. 4. Sự khác biệt giữa Mảng và Bộ sưu tập là gì?
5. Các giao diện khác nhau hiện diện trong khuôn khổ Bộ sưu tập là gì?Giao diện bộ sưu tập: Đây là giao diện gốc của hệ thống phân cấp khuôn khổ Bộ sưu tập. Các giao diện khác có mặt trong khuôn khổ Bộ sưu tập là giao diện Bản đồ và lặp lại. Các giao diện này còn có các giao diện con vì không có triển khai trực tiếp cho giao diện Bộ sưu tập. Giao diện Bộ sưu tập chứa Danh sách, Đặt và Giao diện hàng đợi. Giao diện danh sách: Đây là một tập hợp các phần tử có thứ tự cho phép lưu trữ các giá trị trùng lặp. Đặt giao diện: Đây là một tập hợp các phần tử không có thứ tự và không cho phép các giá trị trùng lặp. Giao diện hàng đợi: Nó thực hiện hàng đợi cấu trúc dữ liệu và tuân theo khái niệm FIFO (First-In-First-Out). Giao diện Deque: Đây là hàng đợi kết thúc kép thực hiện cả ngăn xếp và hàng đợi và do đó hỗ trợ cả FIFO và LIFO. Giao diện bản đồ: Nó lưu trữ dữ liệu dưới dạng các cặp khóa-giá trị và chúng tôi chỉ có thể lưu trữ các khóa duy nhất. 6. Sự khác biệt giữa ArrayList và Vector là gì?
Xem thêm Câu hỏi phỏng vấn BankBazaar 7. Sự khác biệt giữa ArrayList và LinkedList là gì?
Tìm hiểu về Map và Set trong javascript
Bài đăng này đã không được cập nhật trong 2 năm Trong javascript, dev thường dùng nhiều thời gian vào việc quyết định kiểu cấu trúc dữ liệu chuẩn có thể giúp thao tác sau này dễ dàng hơn, tiết kiệm thời gian và làm cho code dễ hiểu hơn. Hai cấu trúc dữ liệu phổ biến để lưu trữ data là Objects và Arrays (cũng là một loại object). Dev sử dụng Objects để lưu trữ cặp key/value và Arrays để lưu trữ danh sách chỉ mục. Tuy nhiên, để mang đến cho dev sự uyển chuyển nhiều hơn, ECMAScript 2015 giới thiệu 2 loại Object mới là Map, được sắp xếp theo bộ các cặp key/value và Set, là một bộ các cặp giá trị duy nhất. trong hướng dẫn này, bạn sẽ tìm hiểu về Map và Set, làm cho chúng giống hoặc khác với Object và Array, các thuộc tính và phương thức có sẵn của chúng và ví dụ về một số cách sử dụng trong thực tế. Tổng quan về Collections trong Java
1. Giới thiệu Java Collection FrameworkBất kì lập trình viên nào đã từng làm việc với Java hay Android có lẽ đều biết tới ArrayList – một class cực kì dễ dùng và tiện dụng. Nhưng có lẽ không nhiều người biết rằng ArrayList chỉ là một trong số rất nhiều class thuộc bộ thư viện Java Collection Framework của Java – một bộ thư viện với rất nhiều class mạnh mẽ giúp bạn đơn giản hóa các thao tác khi làm việc với tập hợp và đồ thị. Java Collection Framework (có thể gọi là nền tảng tập hợp) được xây dựng các interface đinh nghĩa các cách thao tác với tập hợp, các class cụ thể thực thi các interface và các giải thuật thông dụng thường xuyên được sử dụng với tập hợp. Java Collection Framework cung cấp cho bạn hầu như tất cả những gì bạn cần khi muốn làm việc với các tập hợp hay là đồ thị, không chỉ vậy nó còn cho phép bạn mở rộng bằng các kế thừa từ các class hay interface có sẵn để tạo ra bộ thư viện phù hợp nhất với nhu cầu của bạn. Collection framework được thiết kế với mục đích như sau:
2. Collection InterfaceCollection Interface định nghĩa những phương thức cơ bản khi làm việc với tập hợp, đây là gốc cũng là nền móng để từ đó xây dựng lên cả bộ thư viện Java Collection Framework. Collection Interface được kế thừa từ Iterable Interface nên các bạn có thể dễ dàng duyệt qua từng phần tử thông qua việc sử dụng Iterator. 3. Set InterfaceSet (tập hợp) là kiểu dữ liệu mà bên trong nó mỗi phần tử chỉ xuất hiện duy nhất một lần (tương tự như tập hợp trong toán học vậy) và Set Interface cung cấp các phương thức để tương tác với set. Set Interface được kế thừa từ Collection Interface nên nó cũng có đầy đủ các phương thức của Collection Interface. Một số class thực thi Set Interface thường gặp:
4. List InterfaceList (danh sách) là cấu trúc dữ liệu tuyến tính trong đó các phần tử được sắp xếp theo một thứ tự xác định. List Interface định nghĩa các phương thức để tương tác với list cũng như các phần tử bên trong list. Tương tự như Set Interface, List Interface cũng được kế thừa và có đầy đủ các phương thức của Collection Interface. Một số class thực thi List Interface thường sử dụng:
5. Queue InterfaceQueue (hàng đợi) là kiểu dữ liệu nổi tiếng với kiểu vào ra FIFO (first-in-first-out hay vào trước ra trước), tuy nhiên với Queue Interface thì queue không chỉ còn dừng lại ở mức đơn giản như vậy mà nó cũng cấp cho bạn các phương thức để xây dựng các queue phức tạp hơn nhiều như priority queue (queue có ưu tiên), deque (queue 2 chiều), … Và cũng giống như 2 interface trước, Queue Interface cũng kế thừa và mang đầy đủ phương thức từ Collection Interface. Một số class về Queue thường sử dụng:
6. Map InterfaceMap (đồ thị/ánh xạ) là kiểu dữ liệu cho phép ta quản lý dữ liệu theo dạng cặp key-value, trong đó key là duy nhất và tương ứng với 1 key là một giá trị value. Map Interface cung cấp cho ta các phương thức để tương tác với kiểu dữ liệu như vậy. Không giống như các interface ở trên, Map Interface không kế thừa từ Collection Interface mà đây là 1 interface độc lập với các phương thức của riêng mình. Dưới đây là một số class về Map cần chú ý:
Nguồn tham khảo:http://vietjack.com/java/collection_trong_java.jsp https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html http://that2u.com/java-collection-framework-phan-1-gioi-thieu-chung/ http://o7planning.org/vi/10165/huong-dan-su-dung-nen-tang-tap-hop-trong-java#a12326 Giống nhau của HashMap và HashSet
|