Ví dụ LinkedHashMap trong Java

Ngày đăng: 22/07/2020   -    Cập nhật: 22/07/2020
Xin chào tất cả các bạn, chúng ta lại gặp nhau trong loạt bài viết về Java.

Trong quá trình học lập trình chúng ta liên tục phải học về các khái niệm mới, công nghệ mới, việc này giúp ích rất nhiều trong việc viết chương trình của chúng ta.

Và hôm nay, như mọi khi chúng ta sẽ tìm hiểu về một khái niệm mới cũng như làm quen với một lớp khá là quan trọng trong Java, đó là LinkedHashMap.


LinkedHashMap trong Java

LinkedHashMap trong Java

Đầu tiên, chúng ta sẽ cùng nhau tìm hiểu LinkedHashMap là gì và khi nào thì nên sử dụng LinkedHashMap trong Java?

1. LinkedHashMap là gì? Khi nào nên sử dụng LinkedHashMap


LinkedHashMap là gì?


Giống như HashMap, LinkedHashMap trong Java là một lớp triển khai interface (giao diện) Map trong Java, LinkedHashMap cho phép chúng ta gán value (giá trị) cho một key (khóa).

Khác biệt lớn nhất giữa LinkedHashMap và HashMap đó là:


  • Dữ liệu của HashMap duy trì KHÔNG theo thứ tự
  • Còn LinkedHashMap thì CÓ.

Ngoài ra thì về cách sử dụng cũng như trường hợp sử dụng cũng không có nhiều khác biệt giữa 2 lớp này.

Chỉ là một số trường hợp, các bạn cần dữ liệu liên kết với nhau theo một thứ tự nhất định thì lúc này các bạn cần sử dụng LinkedHashMap.

> Tìm hiểu thêm về LinkedList trong Java

Giả sử trong trường hợp các bạn băm nhỏ dữ liệu ra để dễ trao đổi, khi đó dữ liệu cần theo một thứ tự để có thể gộp các mảng băm lại trở thành dữ liệu hoàn chỉnh ban đầu.

Trong khuôn khổ bài viết hôm nay, mình chỉ tập trung vào việc sử dụng LinkedHashMap chứ không tập trung vào khác nhau giữa LinkedHashMap và HashMap nên các bạn sẽ thấy bài này và bài HashMap tương đối giống nhau.

Thế này, như thường lệ chúng ta sẽ liên hệ với một ví dụ thực tế để dễ hiểu hơn về LinkedHashMap nhé.

Ví dụ như các bạn đang có một loạt các từ khóa thường xuyên sử dụng trong một văn bản, để ngắn gọn thì ta sẽ dùng cách viết tắt.

Hay nói cách khác là chuyển từ một đoạn văn bản dài sang một đoạn văn bản ngắn hơn, mà khi đọc người dùng sẽ hình dung ra được ý muốn truyền tải của đoạn văn bản dài.

Ví dụ như một số từ viết tắt thường được sử dụng trên thế giới: WTO ( World Trade Organization), WHO (World Health Organization), NATO (North Atlantic Treaty Organization), … .

Trong lập trình cũng vậy, đôi khi có những từ mà chúng ta phải viết đi viết lại nhiều lần và nếu viết như cách truyền thống thì vẫn được.

Tuy nhiên chúng ta có thể áp dụng cách viết tắt này, chính là sử dụng LinkedHashMap.

LinkedHashMap trong Java không chỉ sử dụng cho chuỗi (String) và còn có thể sử dụng với nhiều kiểu dữ liệu, lớp khác nhau.

Vậy là chúng ta có lẽ đã hiểu hơn LinkedHashMap trong Java là gì rồi nhỉ?

Giờ chúng ta sẽ đi đến phần tiếp theo đó là khi nào thì nên sử dụng LinkedHashMap?


Khi nào thì nên sử dụng LinkedHashMap?


Như đã nói ở trên, LinkedHashMap được sử dụng khi ta cần định nghĩa cho một key nào đó, hay nói cách khác là gán value cho một key nào đó.

Trong câu nói trên tôi cũng đã áp dụng LinkedHashMap vào đó, ta có thể thấy khi nói “key” ta sẽ hiểu là một “khóa” và khi nói “value” thì ta sẽ hiểu đó là “giá trị”. Đó là LinkedHashMap.

Thêm một ví dụ trường hợp sử dụng nữa, số pi là một số rất đặc biệt và được sử dụng nhiều trong toán học, tuy nhiên để ghi hết số pi ra thì hiện nay khoa học vẫn chưa làm được điều đó.

Do vậy, khi sử dụng số pi người ta thường làm tròn nó đến một số lượng số thập phân nhất định (giả sử là 15 số).

Chẳng lẽ mỗi lần muốn sử dụng số pi thì ta phải ghi con số dài ngoằng kia ra?

Không, chúng ta sẽ sử dụng LinkedHashMap để lưu giá trị cho nó, khi sử dụng ta chỉ việc gọi “pi” vậy là ta đã có giá trị của một số pi có độ dài thập phân là 15 chữ số.

Tuy nhiên, các bạn sẽ có một câu hỏi đó là tại sao không sử dụng biến để lưu giá trị mà phải dùng LinkedHashMap?

Giả sử như chúng ta có hàng trăm thậm chí hàng ngàn hằng số cần khái niệm như vậy trong chương trình thì sao?

Nếu sử dụng biến thì chúng ta sẽ phải tạo từng ấy biến à?

Như vậy sẽ rất phức tạp, và LinkedHashMap sẽ giải quyết vấn đề đó.


2. Cách thao tác với LinkedHashMap trong Java


Tiếp theo đây chúng ta sẽ cùng làm một ví dụ để bạn hiểu cách LinkedHashMap hoạt động.

Để sử dụng được LinkedHashMap thì chúng ta cần phải import thư viện của nó vào bằng câu lệnh import:



import java.util.LinkedHashMap;
 
public static void main(String[] args)
{
   // khai báo 1 LinkedHashMap tên hangSo
   // mỗi phần tử trong hangSo bao gồm 2 phần
   // key (String) và value (Float)
   LinkedHashMap<StringFloathangSonew LinkedHashMap<>();

   // khai báo 1 LinkedHashMap tên vietTat
   // mỗi phần tử trong vietTat bao gồm 2 phần
   // key (String) và value (String)
   // có kích thước khởi tạo = 10
   LinkedHashMap<StringStringvietTatnew LinkedHashMap<>(10);

   // thêm một phần tử vào hangSo
   hangSo.put("pi"3.14159 26535 89793f);
   
   // thêm một phần tử vào  vietTat
   vietTat.put("WTO""World Health Organization");

   // xóa một phần tử trong LinkedHashMap
   hangSo.remove("pi");

   // thay đổi giá trị cho key
   hangSo.replace("pi"3.14f);
   //hoặc
   hangSo.replace("pi"3.14159 26535 89793f3.14f);
   // tuy 2 cái có tác dụng như nhau, tuy nhiên với cách thứ 2 thì nó sẽ tường minh

   // copy tất cả giá trị một LinkedHashMap này sang một LinkedHashMap khác
   LinkedHashMap<StringFloathangSo2new LinkedHashMap<>();
   hangSo2.putAll(hangSo);

   // lấy một giá trị của LinkedHashMap ra để sử dụng
   float pi = hangSo.get("pi");
}
 

Ở trên là một số cách thao tác với LinkedHashMap trong Java, tuy nhiên chúng ta có nhiều hàm, phương thức khác nữa, và tôi không thể giới thiệu hết.

Các bạn có thể tự tìm hiểu thêm.

Một số hàm của LinkedHashMap:


  • void clear(): Xóa tất cả các phần tử của LinkedHashMap.
  • Object clone(): Trả về một bản copy của LinkedHashMap.
  • boolean containsKey(Object key): Trả về true nếu LinkedHashMap chứa một phần tử có key được chỉ định.
  • boolean containsValue(Object value): Trả về true nếu LinkedHashMap chứa một phần tử có giá trị (value) được chỉ định.
  • Set entrySet(): Trả về Collection view các ánh xạ có trong LinkedHashMap.
  • Object get(Object key): Trả về giá trị của key được chỉ định.
  • boolean isEmpty(): Trả về true nếu LinkedHashMap trống.
  • Set keySet(): Trả về một Set interface chứa tất cả các key của LinkedHashMap.
  • Object put(Object key, Object value): Thêm một cặp key-value vào LinkedHashMap.
  • void putAll(Map a): Sao chép các phần tử của Map được chỉ định vào LinkedHashMap.
  • Object remove(Object key): Xóa một phần tử có key được chỉ định ra khởi LinkedHashMap.
  • int size(): Trả về số phần tử của LinkedHashMap.
  • Collection values(): Trả về Collection của các giá trị có trong LinkedHashMap.

3. Kết luận


Như vậy là chúng ta đã cùng nhau tìm hiểu xong về LinkedHashMap trong Java, trong bài viết này chỉ giới thiệu một vài hàm, phương thức của lớp LinkedHashMap, tuy nhiên các bạn hoàn toàn có thể tự tìm hiểu thêm trên Java Documentation.

Không quá khó hiểu đúng không nào. Lập trình là như vậy, chỉ cần các bạn chịu học hỏi, mỗi ngày một chút thì các bạn sẽ giỏi dần lên.

“Đi đi, chậm cũng được, miễn là đừng dừng lại”.

> Nếu bạn đang nỗ lực học Java mà cảm thấy hơi khó khăn, hãy tham khảo ngay KHÓA HỌC JAVA tại NIIT - ICT Hà Nội để được hỗ trợ đầy đủ nhất.


---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543 - 0353655150 
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!