Java 65. Hiểu rõ cấu trúc Map của Java | Viết chương trình tra từ điển Anh - Việt



    Bản quyền thuộc về TITV.vn, 
    vui lòng không đăng tải lại nội dung từ trang này.

    Video giải thích chi tiết

    Giới thiệu về Map trong Java

    Trong Java, Map là một interface đại diện cho một đối tượng chứa các ánh xạ giữa các khoá (key) và các giá trị (value). Mỗi khoá sẽ tương ứng với một giá trị. Một trong các ví dụ tiêu biểu có thể kể tới ở đây là một danh bạ điện thoại, số điện thoại là khoá và tên tên người là giá trị, mỗi khoá sẽ chỉ tương ứng với duy nhất một giá trị.


    https://docs.oracle.com/javase/8/docs/api/java/util/Map.html


    Modifier and Type

    Method and Description

    void

    clear()

    Removes all of the mappings from this map (optional operation).

    default V

    compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)

    Attempts to compute a mapping for the specified key and its current mapped value (or null if there is no current mapping).

    default V

    computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)

    If the specified key is not already associated with a value (or is mapped to null), attempts to compute its value using the given mapping function and enters it into this map unless null.

    default V

    computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)

    If the value for the specified key is present and non-null, attempts to compute a new mapping given the key and its current mapped value.

    boolean

    containsKey(Object key)

    Returns true if this map contains a mapping for the specified key.

    boolean

    containsValue(Object value)

    Returns true if this map maps one or more keys to the specified value.

    Set<Map.Entry<K,V>>

    entrySet()

    Returns a Set view of the mappings contained in this map.

    boolean

    equals(Object o)

    Compares the specified object with this map for equality.

    default void

    forEach(BiConsumer<? super K,? super V> action)

    Performs the given action for each entry in this map until all entries have been processed or the action throws an exception.

    V

    get(Object key)

    Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.

    default V

    getOrDefault(Object key, V defaultValue)

    Returns the value to which the specified key is mapped, or defaultValue if this map contains no mapping for the key.

    int

    hashCode()

    Returns the hash code value for this map.

    boolean

    isEmpty()

    Returns true if this map contains no key-value mappings.

    Set<K>

    keySet()

    Returns a Set view of the keys contained in this map.

    default V

    merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)

    If the specified key is not already associated with a value or is associated with null, associates it with the given non-null value.

    V

    put(K key, V value)

    Associates the specified value with the specified key in this map (optional operation).

    void

    putAll(Map<? extends K,? extends V> m)

    Copies all of the mappings from the specified map to this map (optional operation).

    default V

    putIfAbsent(K key, V value)

    If the specified key is not already associated with a value (or is mapped to null) associates it with the given value and returns null, else returns the current value.

    V

    remove(Object key)

    Removes the mapping for a key from this map if it is present (optional operation).

    default boolean

    remove(Object key, Object value)

    Removes the entry for the specified key only if it is currently mapped to the specified value.

    default V

    replace(K key, V value)

    Replaces the entry for the specified key only if it is currently mapped to some value.

    default boolean

    replace(K key, V oldValue, V newValue)

    Replaces the entry for the specified key only if currently mapped to the specified value.

    default void

    replaceAll(BiFunction<? super K,? super V,? extends V> function)

    Replaces each entry's value with the result of invoking the given function on that entry until all entries have been processed or the function throws an exception.

    int

    size()

    Returns the number of key-value mappings in this map.

    Collection<V>

    values()

    Returns a Collection view of the values contained in this map.



    Tra từ điển Anh - Việt

    1. Thêm từ (Từ khóa, Ý nghĩa)

    2. Xóa từ

    3. Tìm ý nghĩa của từ khóa ⇒ Tra từ

    4. In ra danh sách từ khóa

    5. In ra số lượng từ

    6. Xóa tất cả các từ khóa

     Code chi tiết 

    
    package main;
    
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.Set;
    import java.util.TreeMap;
    
    public class TuDien {
    	private Map<String, String> duLieu = new TreeMap<String, String>();
    //	private Map<String, String> duLieu = new HashMap<String, String>();
    	
    	public String themTu(String tuKhoa, String yNghia) {
    		return this.duLieu.put(tuKhoa, yNghia);
    	}
    	
    	public String xoaTu(String tuKhoa) {
    		return this.duLieu.remove(tuKhoa);
    	}
    	
    	public String traTu(String tuKhoa) {
    		String yNghia = this.duLieu.get(tuKhoa);
    		return yNghia;
    	}
    	
    	public void inTuKhoa() {
    		Set<String> tapHopTuKhoa = this.duLieu.keySet();
    		System.out.println(Arrays.toString(tapHopTuKhoa.toArray()));
    	}
    	
    	public int laySoLuong() {
    		return this.duLieu.size();
    	}
    	
    	public void xoaTatCa() {
    		this.duLieu.clear();
    	}
    	
    	public static void main(String[] args) {
    		TuDien tuDien = new TuDien();
    		int luaChon =0;
    		Scanner sc = new Scanner(System.in);
    		do {
    			System.out.println("---------------");
    			System.out.println("MENU ");
    			System.out.println("Tra từ điển Anh - Việt:\n"
    					+ "1. Thêm từ (Từ khóa, Ý nghĩa)\n"
    					+ "2. Xóa từ\n"
    					+ "3. Tìm ý nghĩa của từ khóa ⇒ Tra từ\n"
    					+ "4. In ra danh sách từ khóa\n"
    					+ "5. Lấy số lượng từ\n"
    					+ "6. Xóa tất cả các từ khóa\n"
    					+ "0. Thoát khỏi chương trình\n"
    					+ "");
    			luaChon = sc.nextInt(); sc.nextLine();
    			if(luaChon==1) {
    				System.out.println("Nhập vào từ khóa: ");
    				String tuKhoa = sc.nextLine();
    				System.out.println("Nhập vào ý nghĩa: ");
    				String yNghia = sc.nextLine();
    				tuDien.themTu(tuKhoa, yNghia);
    			}else if(luaChon==2 || luaChon==3) {
    				System.out.println("Nhập vào từ khóa: ");
    				String tuKhoa = sc.nextLine();
    				if(luaChon==2) {
    					tuDien.xoaTu(tuKhoa);
    				}else {
    					System.out.println("Ý nghĩa là: "+ tuDien.traTu(tuKhoa));
    				}
    			}else if(luaChon==4) {
    				tuDien.inTuKhoa();
    			}else if(luaChon==5) {
    				System.out.println("Số lượng từ khóa là: "+tuDien.laySoLuong());
    			}else if(luaChon==6) {
    				tuDien.xoaTatCa();
    			}
    		}while(luaChon!=0);
    	}
    }
    
    
         

    Không có nhận xét nào:

    Đăng nhận xét