java中的HashMap
一:简介
- 以(键,值)对存储数据。
- 不允许有重复的键,但允许有重复的值。
- 不同步(多个线程可以同时访问)
二:方法
方法 | 描述 |
---|
void clear() | 用于删除所有映射 |
boolean containsKey(Object key) | 如果指定键的映射存在于映射中,则用于返回True。 |
boolean containsValue(Object value) | 如果一个或多个键映射到指定值,则用于返回true。 |
Object clone() | 用于返回所提及哈希表的浅表副本。 |
boolean isEmpty() | 用于检查集合是否为空。 如果集合为空,则返回true。 |
Set entrySet() | 用于返回哈希图的设置视图。 |
Object get(Object key) | 用于检索或获取由特定键映射的值。 |
Set keySet() | 用于返回键的设置视图。 |
int size() | 用于返回集合的大小 |
Object put(key,value) | 用于将键-值对的特定映射插入到映射中。 |
putAll(Map M) | 用于将所有元素从一个集合复制到另一个集合。 |
Object remove(Object key) | 用于删除Map中任何特定键的值。 |
Collection values() | 用于返回HashMap中的值的Collection视图。 |
compute(K key,BiFunction <K,V> remappingFunction) | 此方法尝试计算指定键及其当前映射值的映射(如果没有当前映射,则为null)。 |
computeIfAbsent(K key,Function mappingFunction) | 此方法如果指定的键尚未与值关联(或映射为null),则尝试使用给定的映射函数计算其值并将其输入此映射,除非空值。 |
computeIfPresent(K key,BiFunction <K,V> remappingFunction) | 此方法如果存在指定键的值且该值不为null,则尝试计算给定键及其当前映射值的新映射。 |
forEach(BiConsumer <K,V>操作) | 此方法对该映射中的每个条目执行给定的操作,直到处理完所有条目或该操作引发异常为止。 |
getOrDefault(Object key,V defaultValue) | 此方法返回指定键映射到的值;如果此映射不包含该键的映射,则返回defaultValue。 |
merge(K key,V value,BiFunction <K,V> remappingFunction) | 此方法如果指定的键尚未与某个值关联或与null关联,请将其与给定的非null值关联。 |
putIfAbsent(K键,V值) | 此方法如果指定的键尚未与值关联(或映射为null),则将其与给定值关联并返回null,否则返回当前值。 |
replace(K key,V value) | 仅当当前映射到某个值时,此方法才替换指定键的条目。 |
replace(K key,V oldValue,V newValue) | 仅当当前映射到指定值时,此方法才替换指定键的条目。 |
replaceAll(BiFunction <K,V>函数) | 此方法将在该条目上调用给定函数的结果替换每个条目的值,直到处理完所有条目或该函数引发异常为止。 |
三:实例
1:添加(put)
HashMap<String, String> hash_map = new HashMap<String, String>();
hash_map.put( "名字" , "anny" );
hash_map.put( "性别" , "女" );
hash_map.put( "年龄" , "20" );
2:删除(remove)
HashMap<String, String> hash_map = new HashMap<String, String>();
hash_map.remove( "名字" );
3:遍历(remove)
①:性能一般
HashMap<String, String> hash_map = new HashMap<String, String>();
hash_map.put( "名字" , "anny" );
hash_map.put( "性别" , "女" );
hash_map.put( "年龄" , "20" );
for(String key:hash_map.keySet())
{
System.out.println("Key: "+key+" Value: "+hash_map.get(key));
}
②:使用 Collection 类的 iterator() 方法来遍历集合(性能好)
HashMap<String, String> hash_map = new HashMap<String, String>();
hash_map.put( "名字" , "anny" );
hash_map.put( "性别" , "女" );
hash_map.put( "年龄" , "20" );
Collection cl = hash_map.values();
Iterator itr = cl.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}