HashMap

7 篇文章 0 订阅
3 篇文章 0 订阅

java中HashMap的用法

在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。

 

java集合学习(2):Map和HashMap

Map接口

java.util 中的集合类包含 Java 中某些最常用的类。最常用的集合类是 List 和 Map。

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。

它的基本操作有:添加key-value键值对”、“获取key”、“获取value”、“获取map大小”、“清空map”等基本的key-value键值对操作。

Map是一个接口不能实例化,Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。

 

 Map 综述(一):彻头彻尾理解 HashMap

引用别人的:

HashMap 的直接子类LinkedHashMap继承了HashMap的所用特性,并且还通过额外维护一个双向链表保持了有序性, 通过对比LinkedHashMap和HashMap的实现有助于更好的理解HashMap。关于LinkedHashMap的更多介绍,请参见我的另一篇博文《Map 综述(二):彻头彻尾理解 LinkedHashMap》,欢迎指正~

 Map 是 Key-Value 对映射的抽象接口,该映射不包括重复的键,即一个键对应一个值。HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。简单地说,HashMap 是基于哈希表的 Map 接口的实现,以 Key-Value 的形式存在,即存储的对象是 Entry (同时包含了 Key 和 Value) 。在HashMap中,其会根据hash算法来计算key-value的存储位置并进行快速存取。特别地,HashMap最多只允许一条Entry的键为Null(多条会覆盖),但允许多条Entry的值为Null。此外,HashMap 是 Map 的一个非同步的实现。
 

这里写图片描述

 

 Java Map API

序号方法描述
1void clear( )
 从此映射中移除所有映射关系(可选操作)。
2boolean containsKey(Object k)
如果此映射包含指定键的映射关系,则返回 true。
3boolean containsValue(Object v)
如果此映射将一个或多个键映射到指定值,则返回 true。
4Set entrySet( )
返回此映射中包含的映射关系的 Set 视图。
5boolean equals(Object obj)
比较指定的对象与此映射是否相等。
6Object get(Object k)
返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
7int hashCode( )
返回此映射的哈希码值。
8boolean isEmpty( )
如果此映射未包含键-值映射关系,则返回 true。
9Set keySet( )
返回此映射中包含的键的 Set 视图。
10Object put(Object k, Object v)
将指定的值与此映射中的指定键关联(可选操作)。
11void putAll(Map m)
从指定映射中将所有映射关系复制到此映射中(可选操作)。
12Object remove(Object k)
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
13int size( )
返回此映射中的键-值映射关系数。
14Collection values( )
返回此映射中包含的值的 Collection 视图。

 1436. 旅行终点站

 

class Solution {
    public String destCity(List<List<String>> ps) {
        Map<String, String> map = new HashMap<>();
        for (List<String> p : ps) map.put(p.get(0), p.get(1));
        String ans = ps.get(0).get(0);
        while (map.containsKey(ans)) ans = map.get(ans);
        return ans;
    }
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值