本文目录一览:
java里面的map是什么?
java为数据结构中的映射定义了一个接口java.util.Map
。
Map主要用于存储键值对,根据键得到值,因此不允许键重复(重复了覆盖),但允许值重复。
java教程之Map应该怎么用
Map集合:
- 确保唯一性依赖于
hashCode()
和equals
方法。 HashSet
底层依赖于HashMap
,TreeSet
底层依赖于TreeMap
。- Map集合是双列的,
Collection
是单列的。 - Map的键唯一,
Collection
的子体系Set
是唯一的。 - Map集合的数据结构只针对键有效,跟值无关;
Collection
集合的数据结构是针对元素有效。
常用操作:
- 添加:
V put(K key, V value);
如果键是第一次存储就直接存,返回null
;如果不是,就用新值覆盖旧值并返回旧值。 - 删除:
void clear();
清空V remove(Object key);
根据键删除键值对元素,返回值
- 判断:
boolean containsKey(Object key)
判断集合是否包含指定的键boolean containsValue(Object value)
判断集合是否包含指定的值boolean isEmpty()
判断集合是否为空
- 获取:
V get(Object key)
根据键获取值Set<K> keySet()
获取集合中所有键的集合Collection<V> values()
获取集合中所有值的集合
- 长度:
int size()
返回集合中的键值对数 - 遍历:
1.
Set keySet = hm.keySet(); hm.get(key);
-
Set<Map.Entry> = hm.entrySet(); Map.Entry.getKey() Map.Entry.getValue()
-
TreeMap
对键进行比较。
带你轻松理解数据结构之Map
Map结构与我们上节讲解的Set
结构语法差不多(理解数据结构之Set,只要5分钟),不同的是Map是一种键值对格式。Map也处理了防止对象键值强制类型转换的问题。Map是利用数组特性解决的,我们都知道数组可以传入任意类型值,所以Map结构也接收所有类型值。我们刚才说了值不会像对象那样进行强制类型转换,如24
和"24"
就是两种类型关系,互不会影响。
在上面的示例中,创建了一个Map
对象。我们说过Map
是一个数组对象,里面还接收一个数组对象也就是二维数组,里面的参数也就是键值对形式,然后设置map
值,map.set
方法接收两个参数,前者是key
值,后者是value
值。这时Map
对象添加了name
值。
上面示例中,Map
对象提供了查看size
属性的方法,查看当前Map
结构有几组数据。
上面示例中,我们使用Map.get
方法获取对象的属性值。如果获取一个Map
对象中不存在的键,则返回undefined
。
上面示例中,Map.has
返回的是一个Boolean
值,会去这个Map
中查找,如果找到返回true
,否则返回false
,一般用于检测这个Map
中是否存在某个值时使用。
上面示例中,Map.delete
方法删除结构中某个值,如果这个值存在则返回true
,否则返回false
。
上面示例中,Map.clear
该方法则会清除Map
结构中所有的属性。
上面示例中,可以看到Map
结构是一个二维数组,里面是键值对形式的。Map
结构也可以使用forEach
遍历,它接收3个参数:
我们上面讲了Map
可以forEach
遍历,这样循环解析也可以组成一个新的对象。那么ES6方法新提供了快速将这种结构转换为对象的方法。
一句话总结:Set
结构主要用作于判断某个值是否存在该对象中,而Map
结构主要用作于从当前结构中获取该对象的值。
有的情况下我们需求想实现:第一次请求后台接口API,当请求过后第二次就走缓存,不再发送API请求。
在项目需求时,肯定会遇到一个状态对应着一种操作,如下图所示:
Java的数据结构你用过哪些?Map与Set的本质区别是什么?
Java中常见的数据结构有:
- 数组
- 集合类——
Collection
(List
(ArrayList
,LinkedList
),Set
(HashSet
))List
是链表(接口),允许出现重复值。具体实现类:ArrayList
和LinkedList
Set
是集合(接口),不允许出现重复值。具体实现类:HashSet
、TreeSet
等ArrayList
实现链表的内部结构是用数组(Array)。查找高效,修改低效LinkedList
实现链表的内部结构是链表(Linked)。查找低效,修改高效Set
是集合(接口),不允许出现重复值
Iterator
迭代器- 简介:Java提供的迭代器接口用于Java Collection的遍历。
Iterator
模式是用于遍历类的标准访问方法 - 所有继承
Collection
的集合类子类,都有iterator()
方法用于返回迭代器,程序可以获取这个迭代器对象对Collection
对象中的元素进行遍历
- 简介:Java提供的迭代器接口用于Java Collection的遍历。
- 键值对容器 ——
Map
Map
是一种把键对象和值对象进行关联的容器- 注意:像
Set
一样,一个Map
容器中的键对象不允许重复,这是为了保证查找结果的一致性