Java Collection - LinkedHashMap

LinkedHashMap trong java

Những điểm quan trọng về lớp LinkedHashMap trong java là:

  • LinkedHashMaplưu trữ dữ liệu dưới dạng cặp key và value.
  • Nó chứa các key duy nhất.
  • Nó có thể có 1 key là null và nhiều giá trị null.
  • Nó duy trì các phần tử theo thứ tự chèn.

Hierarchy của lớp LinkedHashMap

Lớp LinkedHashMap extends lớp HashMap và implements giao diện Map.

LinkedHashMap trong java

Khai báo của lớp LinkedHashMap

public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>

 

Trong đó:

  • K: đây là kiểu key để lưu trữ.
  • V: đây là kiểu giá trị được ánh xạ.

Ví dụ về LinkedHashMap trong java

Ví dụ 1: Sử dụng phương thức remove().

package vn.viettuts.collection;
 
import java.util.LinkedHashMap;
import java.util.Set;
 
public class LinkedHashMapExample1 {
    /**
     * main
     * 
     * @author viettuts.vn
     * @param args
     */
    public static void main(String args[]) {
        // init linkedHashMap
        LinkedHashMap<Integer, String> linkedHashMap 
                = new LinkedHashMap<Integer, String>();
        // add elements to linkedHashMap
        linkedHashMap.put(1, "Java");
        linkedHashMap.put(3, "C++");
        linkedHashMap.put(2, "PHP");
        linkedHashMap.put(4, "Python");
        // show linkedHashMap before remove
        System.out.println("Before remove:");
        show(linkedHashMap);
        // remove element
        linkedHashMap.remove(2);
        // show linkedHashMap after remove
        System.out.println("After remove:");
        // show hashMap
        show(linkedHashMap);
    }
 
    /**
     * show HashMap
     * 
     * @param viettuts.vn
     */
    public static void show(LinkedHashMap<Integer, String> linkedHashMap) {
        Set<Integer> keySet = linkedHashMap.keySet();
        for (Integer key : keySet) {
            System.out.println(key + " " + linkedHashMap.get(key));
        }
    }
}

Kết quả:

Before remove:
1 Java
3 C++
2 PHP
4 Python
After remove:
1 Java
3 C++
4 Python

Ví dụ 2: HashMap với key có kiểu String, value có kiểu Student.

Lớp Student.java

/**
 * Student class
 * 
 * @author viettuts.vn
 */
class Student {
    private String name;
    private int age;
    private String address;
 
    public Student() {
    }
 
    public Student(String name, int age, String address) {
        super();
        this.name = name;
        this.age = age;
        this.address = address;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public String getAddress() {
        return address;
    }
 
    public void setAddress(String address) {
        this.address = address;
    }
 
    @Override
    public String toString() {
        return "Student@name=" + name + ",age=" + age + ",address=" + address;
    }
}

Lớp LinkedHashMapExample2.java

package vn.viettuts.collection;
 
import java.util.LinkedHashMap;
import java.util.Set;
 
public class LinkedHashMapExample2 {
    /**
     * main
     * 
     * @author viettuts.vn
     * @param args
     */
    public static void main(String args[]) {
        // init linkedHashMap
        LinkedHashMap<String, Student> linkedHashMap 
                = new LinkedHashMap<String, Student>();
        // add elements to linkedHashMap
        linkedHashMap.put("1", new Student("A", 12, "Hanoi"));
        linkedHashMap.put(null, new Student("C", 13, "Hanoi"));
        linkedHashMap.put("2", null);
        linkedHashMap.put("4", new Student("D", 14, "Hanoi"));
        // show linkedHashMap
        show(linkedHashMap);
    }
 
    /**
     * show HashMap
     * 
     * @param viettuts.vn
     */
    public static void show(LinkedHashMap<String, Student> linkedHashMap) {
        Set<String> keySet = linkedHashMap.keySet();
        for (String key : keySet) {
            System.out.println(key + " " + linkedHashMap.get(key));
        }
    }
}

Kết quả:

1 Student@name=A,age=12,address=Hanoi
null Student@name=C,age=13,address=Hanoi
2 null
4 Student@name=D,age=14,address=Hanoi

 



Tư vấn lộ trình CNTT 🤖