0
点赞
收藏
分享

微信扫一扫

今天聊下Java中的HashMap---Java中用的就很多的集合框架

先说下HashMap的定义

HashMap是一个散列表,存储的内容是键值对(key-value)映射。

HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。最后一点和Hashtable不同,Hashtable是支持线程同步的。

HashMap是无序的,不会记录插入的顺序。HashMap继承于 AbstractMap,实现了Map/Cloneable/java.io.Serializable

HashMap的key与value类型可以相同也可以不同:可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。例如:Map<Integer,String> map = Map.of(1,"A",2,"B",3,"C");

 HashMap中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。基本类型对应的包装类表如下:

boolean  Boolean

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

HashMap类位于 java.util包中,使用前需要引入

import java.util.HashMap 在使用HashMap时,工具会自动引入


接下来,说下HashMap的访问元素: 可以使用 get(key)方法来获取key对应的value value = map.get(key)

删除元素 可以使用remove(key)方法来删除key对应的键值对(key-value) 然后生成的数组是无序的

删除所有键值对 使用 clear方法

计算HashMap的大小 可以使用size()方法 map.size() 这里size也是key和value的个数

迭代HashMap 使用循环 for-each来迭代HashMap中的元素;如果只想获取key,可以使用keyset()方法;如果只想获取value,可以使用values方法


接下来,我们来看实例吧:

1.获取HashMap的key和value值

//创建HashMap的对象 sites

        HashMap<Integer,String> sites = new HashMap<Integer, String>();

        //添加键值对

        sites.put(1,"Google");

        sites.put(2,"Baidu");

        sites.put(3,"Zhihu");

        sites.put(4,"JD");

        System.out.println(sites); //key-value键值对

        //根据key值获取对应的value值

        String key1 = sites.get(3);//当key为3时,找到map中对应的value值

        //获取所有的key值,可以将所有的key值弄成数组

        System.out.println("HashMap的key值");

        for (int key:sites.keySet()

             ) {

            System.out.println(key);

        }

结果:

{1=Google, 2=Baidu, 3=Zhihu, 4=JD}

HashMap的key值

1

2

3

4

HashMap的value值

Google

Baidu

Zhihu

JD


2.在一个循环中获取key和value值,需要知道key和value的类型

//获取所有的values值

        System.out.println("HashMap的value值");

        for (String str:sites.values()

             ) {

            System.out.println(str);

        }

        System.out.println("-----------------------");

        //还可以通过一个循环,获取HashMap的key和value值 key为int值,value可以通过sites.get(i)获得

        for (int i:sites.keySet()

             ) {

            System.out.println("key的值为: " + i + "values值为: " + sites.get(i));

        }

结果:

key的值为: 1values值为: Google

key的值为: 2values值为: Baidu

key的值为: 3values值为: Zhihu

key的值为: 4values值为: JD


3.删除HashMap中的元素

//创建String的key和String的value

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

        map.put("one","Google");

        map.put("two","Baidu");

        map.put("Three","Zhihu");

        map.put("Four","JD");

        System.out.println(map);

        map.remove("one");

        System.out.println(map); //无序的,但是删除了 one = Google

结果:

{one=Google, Four=JD, two=Baidu, Three=Zhihu}

{Four=JD, two=Baidu, Three=Zhihu}

4.清除HashMap

map.clear();

System.out.println(map); //HashMap中的所有元素都删除

结果:

{}


今天先到这里吧

今天聊下Java中的HashMap---Java中用的就很多的集合框架_java

举报

相关推荐

0 条评论