java怎么构造map_Java中Map结构

本文介绍了Java中的Map接口,它是集合层次结构的一部分,用于存储键值对。Map不允许重复的键,每个键最多对应一个值。讨论了HashMap和TreeMap的区别,以及Map接口的一些常用方法,如isEmpty、containsKey、containsValue、get、put、remove等。
摘要由CSDN通过智能技术生成

Colletion

Collection接口是劫和层次结构中的根接口。一个Collection表示了一组对象,也称其为元素(elements)。JDK不提供该接口的任何直接实现,但是提供了具有更特定的子接口(例如:Set和List)Set:不包含重复元素的集合。集合中不能存在两个元素e1和e2,使得

e1.equals(e2);

因此,集合中只能存在一个空元素。顾名思义,此接口是对应数学中集合的抽象概念。List:可以包含重复元素的集合。并且该集合存在有序性(也称为序列)。用户可以精确控制列表中每个元素的插入位置,也可以通过其索引访问元素。Java集合结构。

MAP

Map是一个将键(Key)映射到值(Value)的对象。Map中不能包含重复的键,并且每个键最多可以映射一个值。Map代替了Dictionary类,不再作为一个纯抽象类而是一个接口提供使用。

Map集合提供了三种集合视图,其中有一组键(keySet)、一组值(values)和一组键值(entrySet)对。TreeMap:可以通过Map中的键来自然排序或在Map创建时通过提供的Comparator对Map进行排序。

HashMap:此Map允许存在空值和空键存在,但不保证映射的顺序。特别是,它不能保证顺序会随着时间的推移保持恒定。

在Java中,Map与Collection同级,而并非与List和Set同级。Collection储存单值而Map储存键值对。

MAP常用方法

boolean isEmpty()

如果map中没有任何键值对映射,则返回true。

boolean containsKey(Object key)

如果map中包含一个(最多只有一个)特定键的映射,则返回true。

参数为:key - 要在map中测试的键。

boolean containsValue(Object value)

如果map中包含了一个或多个映射到键的值,则返回true。对于Map接口的大多数实现,此方法需要消耗的时间与map的大小成线性增长。

参数为:value - 要在map中测试的值。

V get(Object key)

返回特定键映射的值,如果该键在map中没有对应的映射,则返回null。

如果此map允许存放null值,则返回的null不一定表示该map不包含键的映射,也可能明确的指明该键的映射值为null。containsKey操作可以用来区分这两种情况。

参数为:key - 一个键,该键所关联的值会被返回。

V put(K key, V value)

将指定值与此映射中的指定键做关联。如果map中的键已经有对应的映射值,则会将旧值替换为指定的值。(仅当

m.containsKey(k);

返回true时,才认为map m包含键k的映射值)。该方法会返回键之前关联的值,如果为null则该键没有对应的值。

参数为:key - 一个键,该键要与特定的值相关联。

value - 一个值,该值要与特定的键相关联。

V remove(Object key)

将指定键与其相关联的一组键值对映射从map中移除。该方法会返回指定键所映射的值,如果该键没有对应的映射,则返回null。

与get方法相同,如果此map允许存在null值,则返回的null也可能明确的指明该键的映射值为null。

一旦调用此方法,则map中不再包含指定键与其映射值。

参数为:

key - 一个键,该键的一组键值对映射会被移出map。

void putAll(Map extends K, ? extends V> m)

将特定的map中的所有键值对复制到参数中给出的map中。对于从特定map中将键值对复制到给出的map中的操作等同于在给出的map中调用一次put(k, v)方法。如果在操作进行过程中对特定的map进行了修改,则不能保证此操作的正确性。

参数为:

m - 要存入map中的一组键值对映射组。

void clear()

移除map中的所有键值对。在执行该方法后,该map会变成空。

Set> entrySet()

该方法返回此map中包含的映射的Set视图。该set是基于原map的,所以map的数据改变会反映到set中,反之亦然。

如果在对set进行迭代的时候修改了map(除非通过迭代器自身的remove操作或通过迭代器的setValue方法),则迭代的结果是不确定的。该set支持元素的删除,删除map中对应的映射组。但不支持add或addAll操作。

Set keySet()

该方法返回此map中包含的key的Set视图。该set是基于原map的,所以map的数据改变会反映到set中,反之亦然。

Collection values()

该方法返回此map中包含的values的collection视图。该collection是基于原map的,所以map的数据改变会反映到collection中,反之亦然。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值