MAP VÀ HASHMAP TRONG JAVA

     

Hiện nay có rất nhiều phương pháp để tổ chức tài liệu trong chương trình, điển hình trong các đó là HashMap. Với tầm độ thông dụng ngày dần cao, HashMap vẫn là lựa chọn của không ít lập trình viên trong các dự án của họ.

Bạn đang xem: Map và hashmap trong java

Vậy HashMap thật ra là gì với nó vận động như núm nào, hãy thuộc mình tò mò qua nội dung bài viết này nhé.

HashMap là gì?

Interface Map

Trước khi nói đến HashMap, bọn họ cần đề nghị hiểu sơ lược về sự hình thành của nó, hay có thể nói rằng là sự bắt nguồn của HashMap. Nó xuất phát điểm từ một Map interface (java.util.Map), interface này màn trình diễn sự ánh xạ giữa một trường hotline là "khóa" cùng một trường call là "giá trị", quy mô của nó như sau.

*
Các tính năng đặc thù của nhân tố trong khối hệ thống Map

Có 2 class triển khai trực tiếp Map interface bao gồmHashtable: Không chứa giá trị null, hỗ trợ đồng cỗ nhưng đang lỗi thời.Hashmap: cho phép chứa cực hiếm null, không cung ứng đồng bộ, với điểm lưu ý đặc trưng là lắp thêm tự lặp (iteration order) không tuân theo một quy tắc làm sao (random).Class TreeMap thực hiện gián tiếp qua các interface không ngừng mở rộng của interface Map, với đặc điểm đặc trưng là tự động sắp xếp cực hiếm (theo máy tự trường đoản cú nhiên).Class LinkedHashMap extends từ bỏ class HashMap, với điểm sáng đặc trưng làthứ từ lặp là thứ tự ban đầu của các Entry (thứ từ thêm vào).

HashMap vận động dựa trên nguyên tắc nào?

Hashing là gì? :Hashing là 1 trong thuật toán rất có thể áp dụng cho bất kỳ đối tượng nào, với khi thực hiện, hashing vẫn trả về một cực hiếm (kiểu số nguyên) duy nhất đại diện thay mặt cho đối tượng người tiêu dùng đó. Quý giá số nguyên nhất này được call là mã băm (hash code).

*
Các tin tức về sinh viên sau khi sang một thuật toán Hash

Map interface ko extends ngẫu nhiên interface nào khác từ thư viện Collection, đề xuất cách hoạt động vui chơi của nó cũng khác hoàn toàn so với những interface không giống trong tủ sách Collection. HashMap tàng trữ dữ liệu theo các cặp (viết tắt là K-V). Mỗi cặp được tàng trữ trong 1 đối tượng người tiêu dùng gọi là Entry, và Entry này được lưu trong một table tuân theo cơ chế Hashing


static class Entry implements Map.Entry //Khóa của đối tượng người tiêu dùng (K) final K key; //Giá trị trên K (V) V value; //Con trỏ cho tới Entry(đối tượng) sau đó Entry next; //HashCode của K int hash;
Chi máu về điểm sáng chính của HashMap:

HashMapkhông thể chứa những key(K) trùng lặpHashMap cho phép value(V) = null và/hoặc key(K) = nullHashMap là một bộ sưu tập không tất cả thứ tự. Nó không bảo đảm bất kỳ đồ vật tự cụ thể của những phần tử, tốt nói dễ nắm bắt hơn là thứ tự khi chăm chút của HashMap không áp theo một chính sách nào.HashMap không hỗ trợ đồng cỗ hóa. Chúng ta phải đồng bộ hóa cụ thể các sửa đổi đồng thời với HashMap.

*

Thao tác cơ bạn dạng với HashMap

1. Chế tạo ra mới

Cách tạo ra một đối tượng người tiêu dùng HashMap mới:

Import thư viện:importjava.util.HashMap;Tạo một HashMapvới cú pháp: HashMap name=new HashMap();

Dưới đây là một số ví dụ

//Tạo new một HashMap bao gồm Key(String) cùng Value(String)HashMap hashmap0=new HashMap();//Tạo bắt đầu một HashMap bao hàm Key(Integer) và Value(Float)HashMap hashMap1 = new HashMap(); //Tạo mới một HashMap bao gồm Key(String) cùng Value(Double), có form size bằng 10HashMap hashMap2 = new HashMap(10); //Khai báo 1 HashMap được tạo nên thành từ là 1 Collection khácHashMap hashMap4 = new HashMap(new TreeMap());2. Thêm Entry(K-V) vào HashMapPhương thức :put(Object key, Object value);

Thêm một cặp giá trị vào HashMap vừa tạo, kiểu dữ liệu của K với V bắt buộc giống với kiểu dữ liệu được khai báo vào HashMap lúc vừa khởi tạo.

Xem thêm: Đại Học Kiên Giang Tuyển Dụng, Đoàn Trường Đại Học Kiên Giang

hashmap.put("Hardware", "Phần cứng");hashmap.put("Software", "Phần mềm");hashmap.put("College", "Trường Đại Học");hashmap.put("Programer", "Lập Trình Viên");hashmap.put("Compile", "Biên Dịch");hashmap.put("Error", "Lỗi");Kiểu dữ liệu của khóa trong trường thích hợp này(key:K) là String với kiểu dữ liệu của cực hiếm (value:V) cũnglà String.

3. Sửa Value của một Entry vào HashMap

Phương thức:replace(key,newValue);

Dùng để biến đổi giá trị của một khóa K ngẫu nhiên đã tồn tại phía bên trong HashMap

//Thêm Entry vào HashMaphashmap.put("DoanDucTin", "Class_SE1403");//Thay đổi value của Entry có key là "DoanDucTin"hashmap.replace("DoanDucTin", "NewClass_SE1401");4. Xóa Một Entry(K-V) ra khỏi HashMapPhương thức: remove(key);

Dùng nhằm xóa một Entry ra khỏi HashMap phụ thuộc khóa K

//Thêm Entry vào HashMaphashmap.put("Error", "Lỗi");//Xóa Entry thoát ra khỏi HashMap nhờ vào key (K)hashmap.remove("Error");5. Hiển thị toàn thể Entry của HashMap ra màn hìnhCách 1: áp dụng EntrySet

Phương thức này đang trả về 1Setbao gồm các Entrycó trongHashMap (cú pháp khai báo Set: Set> set = hashmap.entrySet();)

//Tạo một set lưu các EntrySet của HashMapSet> setHashMap = hashmap.entrySet();//Sử dụng một vòng lặp for nhằm iterator qua tổng thể Entry vừa được lưu vào Setfor (Map.Entry i:setHashMap) System.out.println(i.getKey()+" --> "+i.getValue());​

*

In demo HashMap ra màn hình

Có thể dùng thêmhashMap.values(); nhằm hiển thị toàn bộ giá trị vào HashMap hoặchashMap.keySet(); nhằm hiển thị tổng thể key trong HashMap

//In toàn bộ key ra màn hìnhfor (String i:hashmap.keySet()) System.out.println(i);//In toàn cục giá trị ra màn hìnhfor (String i:hashmap.values()) System.out.println(i);

*

In demo HashMap ra màn hình

Cách 2: sử dụng Iterator

Iterator là 1 trong đối tượngcó kĩ năng duyệt qua phần tử, để sử dụng trước hết họ cần cần import thư việnjava.util.Iterator của Java

//Khai báo một đối tượng người tiêu dùng Iterator tự entrySet của hashmapIterator> iterator = hashmap.entrySet().iterator();//Duyệt qua toàn bộ thành phần trong Iterator nhằm in công dụng ra màn hìnhwhile (iterator.hasNext()) System.out.println(iterator.next());6. Rước value lúc biết keyPhương thức: get(key);

Trả về một đối tượng người dùng value(V) khớp ứng tới key(K)

//Thêm Entry vào HashMaphashmap.put("DoanDucTin", "Class_SE1403");//Lấy giá trị tương ứng với khóa "DoanDucTin"System.out.println(hashmap.get("DoanDucTin"));//Console -->:Class_SE1403Một số cách tiến hành khác

Phương ThứcMô tả sơ lược
void clear()Xóa toàn bộ các phần tử của HashMap.
Object clone()Trả về một bạn dạng copy của HashMap.
boolean containsKey(Object key)Kiểm tra giả dụ HashMap chứa 1 phần tử tất cả khóa được chỉ định.
boolean containsValue(Object value)Kiểm tra nếu HashMap chứa một phần tử có mức giá trị được chỉ định.
boolean isEmpty()Kiểm tra HashMap trống tuyệt không.
void putAll(Map t)Sao chép các bộ phận của bản đồ vào HashMap.
int size()Trả về số thành phần đang tồn tại bên phía trong HashMap.

Xem thêm: Top 8 Tivi 65 Inch Giá Rẻ Nhất Chỉ Từ 18, Tivi 65 Inch (Có 315 Sản Phẩm)

Ứng dụng của hashMap

Dùng làm từ điển:

*

HashMap áp dụng trường Key để lưu từ giờ Anh cùng trường giá trị là nghĩa của từ kia trong tiếng Việt

Ngoài ra, HashMap cònđược vận dụng nhiều trong các chương trình và nhất là ứng dụng trong thống trị các đối tượng mà đối tượng người dùng đó thực hiện một khóa (nhằm mục tiêu định danh) cùng trả về một thông tin về đối tượng người dùng đó

Tổng Kết

Trong bài xích này, bản thân đã giới thiệu cho các bạn những đặc điểm, cách vận động cũng như những phương thức hay được sử dụng trong HashMap, hy vọng sau nội dung bài viết các chúng ta cũng có thể có thêm được rất nhiều kiến thức mới. HashMap hiện thời đang được rất nhiều nhà tuyển dụng sử dụng để đặt các câu hỏi phỏng vấn nhằm mục đích kiểm tra trình độ chuyên môn và sự gọi biết của bạn, vày vậy xung quanh HashMap ra, chúng ta nên mày mò và tổng hợp mang lại chính bạn dạng thân mình nhiều kiến thức nhất rất có thể nhé, chúc chúng ta thành công.