HashMap、HashTable、TreeMap用法与区别分析篇

本文深入探讨了HashMap、HashTable和TreeMap在Java中的使用,包括它们是否允许空键空值、遍历方式、常用方法、线程安全性以及容量差异。HashMap允许空键空值,而HashTable和TreeMap不完全允许;HashMap和TreeMap是非线程安全的,而HashTable是线程安全的;HashMap在容量上要求为2的n次方,HashTable初始容量为11。文章还对比了三者之间的父类方法和具体区别,并提供了相关博客链接以供进一步学习。
摘要由CSDN通过智能技术生成

1. HashMap基本使用篇

1.1 是否允许空值、空键

  1. HashMap允许空值、空键
  2. HashMap允许同时存在空值、空键
  3. HashMap不允许键重复,如果重复,新值覆盖旧值。

1.2 HashMap的遍历

  1. 通过keySet方法实现遍历,一次性把map集合中的所有键放入Set集合中再遍历,可使用增强型for循环。
Set<String> keySet=hashMap.keySet();
  1. 使用entrySet方法实现遍历,将集合中的所有键+值取出放入Set集合中,再进行遍历。
Set<Map.Entry<String,String>> entry=hashMap.entrySet();

注意:使用keySet方法遍历时先存储键值,再去循环查找值value,相当于两次循环。效率较低。

1.3 常用方法

  1. put:添加新元素
  2. get:利用键查找值

1.4 程序示例

package Map;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

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


public class TestHashMap {
    public static void main(String[] args) {
        HashMap<String,String> hashMap=new HashMap<>();
        hashMap.put("重庆985","重庆大学");
        hashMap.put("重庆211","西南大学");
        hashMap.put(null,"键为空");
        hashMap.put("值为空",null);
        hashMap.put(null,null);
       // System.out.println(hashMap.get("重庆211"));
        Set<String> keySet=hashMap.keySet();
        System.out.println("使用KeySet方法遍历HashMap");
        for (String keyset:keySet){
            System.out.println("键:  "+keyset+"  值:  "+hashMap.get(keyset));
        }
        System.out.println("-----------------------------");
        for (String k:hashMap.keySet()){
            System.out.println("键:  "+k+"  值:  "+hashMap.get(k));
        }
        System.out.println("-----------------------------");
        System.out.println("使用entrySet方法遍历HashMap");
        Set<Map.Entry<String,String>&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就是二二二二婷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值