日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

集合Map以及HashMap

作者:xiaobaistudyjava 更新時間: 2022-09-22 編程語言

一、集合Map

Map是一個雙列集合,一個元素包含兩個值(一個key,一個value);

Map集合中的元素,key和value的數(shù)據(jù)類型可以相同,也可以不同 ;

Map中的元素,key不允許重復(fù),value可以重復(fù) ;

Map里的key和value是一一對應(yīng)的。

二、HashMap

HashMap底是哈希表,查詢速度非常快(jdk1.8之前是數(shù)組+單向鏈表,1.8之后是數(shù)組+單向 鏈表/紅黑樹 ,鏈表長度超過8時,換成紅黑樹);

HashMap是無序的集合,存儲元素和取出元素的順序有可能不一致 ;

HashMap集合是不同步的,也就是說是多線程不安全,單速度快。

HashMap<String, String> map = new HashMap<>();

HashMap常用操作:

import java.util.HashMap;

public class Practice14 {
    public static void main(String[] args) {
        //實(shí)例化
        HashMap<String,String> hm = new HashMap<>();
        System.out.println(hm.isEmpty());
        //插入元素
        hm.put("1","java");
        hm.put("2","mysql");
        hm.put("3","javascript");
        System.out.println(hm);
        System.out.println(hm.isEmpty());
        System.out.println(hm.size());
        System.out.println("---");
        System.out.println(hm.containsKey("s3"));
        System.out.println(hm.containsValue("java"));
        System.out.println("---");
        //刪除
        //hm.clear();
        //hm.remove("s1");//根據(jù)key刪除元素
        //hm.remove("s1","myjava");//根據(jù)key value刪除元素
        //修改
        String str = hm.replace("s1","java18");

        System.out.println(str);
        System.out.println(hm);
        //獲取元素
        System.out.println(hm.get("s1"));//java
        System.out.println(hm.getOrDefault("s3","html"));
        System.out.println(hm.get("s3"));
    }
}

運(yùn)行結(jié)果:

true
{1=java, 2=mysql, 3=javascript}
false
3
---
false
true
---
null
{1=java, 2=mysql, 3=javascript}
null
html
null

二、HashMap遍歷

有以下幾種遍歷方式:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Practice15 {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("北京", "火鍋");
        map.put("上海", "東方明珠");
        map.put("鄭州", "方特");
        map.putIfAbsent("杭州", "大閘蟹");
        map.replace("武漢", "熱干面");
        //第一種遍歷
        for(Object key : map.keySet()) {
            System.out.println("key:" + key + ",vaule:" + map.get(key));
        }
        System.out.println("--------------------");
        //第二種遍歷
        Iterator<String > it = map.keySet().iterator();
        while (it.hasNext()) {
            Object key = it.next();
            System.out.println("key:" + key + ",vaule:" + map.get(key));
        }
        System.out.println("--------------------");
        //第三種遍歷
        Iterator<Map.Entry<String , String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String , String> entry = iterator.next();
            System.out.println("key:" + entry.getKey() + ",vaule:" +
                    entry.getValue());
        }
        System.out.println("--------------------");
        //第四種遍歷
        for (Map.Entry<String,String> entry: map.entrySet()) {
            System.out.println("key:" + entry.getKey() + ",vaule:" +
                    entry.getValue());
        }
        System.out.println("--------------------");
        //第五種遍歷
        map.forEach((key,value) -> {
            System.out.println("key:" + key + ",vaule:" + value);
        });
        System.out.println("--------------------");
        //第六種遍歷
        map.entrySet().forEach(item -> {
            System.out.println("key:" + item.getKey() + ",vaule:" +
                    item.getValue());
        });
        System.out.println("--------------------");
        //第七種遍歷
        map.keySet().forEach(item -> {
            System.out.println("key:" + item + ",vaule:" + map.get(item));
        });

    }

}

運(yùn)行結(jié)果:

key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋

?

原文鏈接:https://blog.csdn.net/xiaobaistudyjava/article/details/126959866

欄目分類
最近更新