マップインターフェイス(収集は続く)

マップインターフェイス(収集は続く)

概要概要

  • キーを値にマップするオブジェクト

  • マップに重複するキーを含めることはできません

  • 各キーは最大で1つの値にのみマップできます

HashMap:

HashMapの要素のキー値を繰り返すことはできません。つまり、equalsメソッドが相互に呼び出され、戻り値はfalseです。配置順序は固定されていません。

特徴:

キーを繰り返すことはできません。値を繰り返すことができます(キーを繰り返すと、次のキーの値が前のキーの値を上書きします)

1つのキーが1つの値に対応します

1つのキーをnullにする

主要な重複排除メソッド:ハッシュコードメソッドとequalsメソッド

Mapaインターフェースの一般的な方法:

V put(Kキー、V値)

V remove(オブジェクトキー)

void clear()

ブールcontainsKey(オブジェクトキー)

ブールcontainsValue(オブジェクト値)

ブールisEmpty()

int size()

V get(オブジェクトキー)

keySet()を設定します

コレクションvalues()

Set <Map.Entry <K、V >> entrySet()

package day4;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HashMapDemo {
    
    
    /*
    Map;双列存储  键----值
       键不能重复,值可以重复的
       HashMap
       TreeMap
       HashTable
     */
    public static void main(String[] args) {
    
    
        /*
        键去重复: hashcode()  equals()
                如果有重复的键,后面键的值会覆盖已经添加进去的值
                允许有一个为  null 的键
         */
        Map<String,String>  map=new HashMap<>();
                            map.put("a","1");
                            map.put("a","2");
                            map.put("c","3");
                            map.put("d","4");
                            map.put("w","5");
                            //map.put(null,"a");
                            //map.clear();
                            //map.remove("a");
        /*System.out.println(map.get("c"));
        System.out.println(map.containsKey("a"));
        System.out.println(map.size());
        System.out.println(map.isEmpty());
        System.out.println(map.containsValue("a"));*/


        Collection<String> values =map.values();
        System.out.println(values);
         /*
         遍历1
         Set<String>  keySet =map.keySet();
         for( String s:keySet){
             System.out.println(s);
         }*/
        /*
        遍历2
        Set<Map.Entry<String,String>>  set=map.entrySet();
         for( Map.Entry<String,String> entry:set) {
             System.out.println(entry.getValue()+"=="+entry.getKey());
         }
*/
        System.out.println(map);
    }
}

TreeMap:

TreeMapのすべての要素は、特定の固定された順序を維持します。順序付けられたMapを取得する必要がある場合は、TreeMapを使用する必要があり、キー値が配置されているクラスはComparableインターフェイスを実装する必要があります。

特徴:

  • 自然な順序またはカスタムの順序でキーをトラバースするのに適しています。

  • TreeMapはキー値に従ってソートされ、キー値はComparableインターフェースを実装し、compareToメソッドをオーバーライドする必要があります。TreeMapは、compareToのロジックに従ってキーを並べ替えます。

  • キーは赤黒木構造であり、キーの並べ替えと一意性を保証できます

package day4;

import java.util.TreeMap;

public class TreeMapDemo {
    
    
    public static void main(String[] args) {
    
    
        TreeMap<String,String> map = new TreeMap<>();
        map.put("a","1");
        map.put("f","4");
        map.put("e","3");
        map.put("x","5");
        map.put("b","2");
        System.out.println(map);
    }
}

TreeMapのすべての要素は、特定の固定された順序を維持します。順序付けられたMapを取得する必要がある場合は、TreeMapを使用する必要があり、キー値が配置されているクラスはComparableインターフェイスを実装する必要があります。

ハッシュ表:

同期を実現しました。

package day4;

import javafx.scene.control.TreeTableView;

import java.util.Hashtable;

public class TreeTableDemo {
    
    
    public static void main(String[] args) {
    
    
        Hashtable<String, String> tmap = new Hashtable<>();
        tmap.put("a","1");
        tmap.put("f","5");
        tmap.put("e","4");
        tmap.put("b","2");
        tmap.put("c","3");
        System.out.println(tmap);
    }
}

マップコレクションの走査

  • キーで値を見つける

すべてのキーのコレクションを取得します

キーのセットをトラバースし、各キーを取得します

キーで値を見つける

  • キー値に従ってオブジェクトのキーと値を見つけます

すべてのキーと値のペアのコレクションを取得します

キーと値のペアオブジェクトのコレクションをトラバースし、各キーと値のペアオブジェクトを取得します

キー値に従ってオブジェクトのキーと値を見つけます

package day4;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HashMapDemo {
    
    

    public static void main(String[] args) {
    
    
        
        Collection<String> values =map.values();
        System.out.println(values);
      
         //遍历1
         Set<String>  keySet =map.keySet();
         for( String s:keySet){
    
    
             System.out.println(s);
         }
        
        //遍历2
        Set<Map.Entry<String,String>>  set=map.entrySet();
         for( Map.Entry<String,String> entry:set) {
    
    
             System.out.println(entry.getValue()+"=="+entry.getKey());
         }

        System.out.println(map);
    }
}

おすすめ

転載: blog.csdn.net/ZJ_1011487813/article/details/110204363