java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap.
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。
Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。 HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。
Hashtable与 HashMap类似,它继承自Dictionary类,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了 Hashtable在写入时会比较慢。
LinkedHashMap 是HashMap的一个子类,保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.也可以在构造时用带参数,按照应用次数排序。在遍历的时候会比HashMap慢,不过有种情况例外,当HashMap容量很大,实际数据较少时,遍历起来可能会比 LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关,而HashMap的遍历速度和他的容量有关。
TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。
一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。如果需要输出的顺序和输入的相同,那么用LinkedHashMap 可以实现,它还可以按读取顺序来排列.
HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为NULL,允许多条记录的值为NULL。
HashMap不支持线程同步,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致性。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。
Hashtable与HashMap类似,不同的是:它不允许记录的键或者值为空;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtable在写入时会比较慢。
LinkedHashMap保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的。
在遍历的时候会比HashMap慢TreeMap能够把它保存的记录根据键排序,默认是按升序排序,也可以指定排序的比较器。当用Iterator遍历TreeMap时,得到的记录是排过序的。
分享到:
相关推荐
- `put(K key, V value)`: 将指定的键值对放入Map中,如果键已经存在,则替换旧值。 - `get(Object key)`: 返回与指定键关联的值,如果不存在则返回null。 - `containsKey(Object key)`: 检查Map是否包含指定的键。 ...
使用`put()`方法将键值对放入Map中,如: ```java map.put("sa", "dd"); ``` 3. **获取值**: 通过键来获取对应的值,可以使用`get()`方法: ```java String str = map.get("sa").toString(); ``` 4. **...
// 假设已向map中添加了一些元素 Iterator<String> it = map.keySet().iterator(); while (it.hasNext()) { String key = it.next(); String value = map.get(key); System.out.println(key + ":" + value); } ``...
介绍了java中map用法,对一些不知道map怎么用的同学有帮助
### 对Java中Map集合的深入解析 #### 一、Map集合概述 Map是Java集合框架中的一个重要组成部分,它提供了一种存储键值对(key-value pair)数据结构的方式。与List和Set不同,Map并没有直接继承自`Collection`接口,...
放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、遍历Map.values():它是Map中value的集合,我们可以直接通过这个集合遍历 ...
Java 中 Map 集合的用法 Java 中的 Map 集合是一种非常常用的数据结构,用于存储键值对形式的数据。Map 集合是 Java 中最基本的集合类型之一,广泛应用于各种应用程序中。本文将详细介绍 Map 集合的用法、Map 接口...
读取Map中的数据,我们可以使用`get()`方法,传入键即可获取对应的值: ```java int appleValue = map.get("Apple"); // 输出:1 ``` 遍历Map有多种方式,一种是使用`entrySet()`,它可以返回Map中所有的键值对: ...
使用`put()`方法将键值对放入Map中: ```java map.put("sa", "dd"); ``` 这里将键"sa"与值"dd"关联起来。 3. **获取元素** 通过键来获取对应的值,使用`get()`方法: ```java String str = map.get("sa")....
- `clear()`:删除Map中所有映射关系。 - `remove(Object key)`:根据给定的键移除对应的键值对。 - `put(Object key, Object value)`:将指定的键值对存入Map。 - `putAll(Map t)`:将另一个Map的所有映射复制...
- `Object put(Object key, Object value)`:将指定的键值对插入到Map中。如果已经存在相同的键,则用新的值覆盖旧的值并返回旧值;如果键不存在,则插入新的键值对并返回`null`。 - `Object remove(Object key)`...
Map是Java中最天才的设计,使用起来也很灵活,该类总结了Map通过key和value进行升序和降序排序,Map的两种遍历的公共方法以及上面功能的测试方法
本主题聚焦于易语言中的面向对象编程,特别是模仿Java集合框架的List和Map接口的实现。这些数据结构在编程中扮演着核心角色,用于组织和管理数据。 首先,让我们深入了解易语言的面向对象编程概念。面向对象编程...
Map中元素存放是无序的 HashMap注意事项: 1,HashMap底层维护一个数组,我们向HashMap中所放置的对象实际上是存储在该数组当中; 2,当向HashMap中put一对键值时,它会根据key的hashCode值计算出一个位置,该位置...
Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...
- 当仅需获取Map中的值时,使用此方法可以快速实现目标。 - 对于简单的数据展示或处理场景尤为适用。 #### 2. 使用`keySet()`遍历 `keySet()`方法返回一个包含Map中所有键的集合。通过迭代这些键并使用`get()`方法...
Map接口还包含`keySet()`和`values()`方法,分别返回Map中所有键的Set视图和所有值的Collection视图。`entrySet()`返回Map中所有键值对的Set视图,这是遍历Map常用的方式。 SortedMap是Map的一个扩展,它要求键保持...