Java HashMap
1 什么是Java HashMap
Java HashMap类通过使用哈希表来实现Map接口。HashMap继承了AbstractMap类并实现Map接口。
Java HashMap要记住的核心要点:
- Java HashMap类包含key-value对。
- Java HashMap类不能存储重复数据(key不能重复)。
- Java HashMap类可以包含一个或多个null值。
- Java HashMap类是非同步的(线程不安全)。
- Java HashMap类元素是无序的。
- Java HashMap类的初始默认容量为16,负载因子为0.75。
2 Java HashMap的层次结构
如上图所示,HashMap类继承了AbstractMap类并实现了Map接口。
3 Java HashMap的语法
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
4 Java HashMap的构造方法
构造方法 | 描述 |
---|---|
HashMap() | 用于构造默认的HashMap。 |
HashMap(Map<? extends K,? extends V> m) | 用于通过使用给定Map对象的元素来初始化HashMap。 |
HashMap(int capacity) | 用于将HashMap的容量初始化为给定的整数值。 |
HashMap(int capacity, float loadFactor) | 用于通过使用其参数来初始化HashMap的容量和负载因子。 |
5 Java HashMap的方法
6 Java HashMap例子:add()
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java HashMap的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
HashMap<Integer,String> hm=new HashMap<Integer,String>();
System.out.println("初始化HashMap: "+hm);
hm.put(100,"Eric");
hm.put(101,"Jack");
hm.put(102,"Rose");
System.out.println("执行put()方法后 ");
for(Map.Entry m:hm.entrySet()){
System.out.println(m.getKey()+" "+m.getValue());
}
hm.putIfAbsent(103, "Lucy");
System.out.println("执行putIfAbsent()方法后 ");
for(Map.Entry m:hm.entrySet()){
System.out.println(m.getKey()+" "+m.getValue());
}
HashMap<Integer,String> map=new HashMap<Integer,String>();
map.put(104,"Macy");
map.putAll(hm);
System.out.println("执行putAll()方法后 ");
for(Map.Entry m:map.entrySet()){
System.out.println(m.getKey()+" "+m.getValue());
}
}
}
输出结果为:
初始化HashMap: {}
执行put()方法后
100 Eric
101 Jack
102 Rose
执行putIfAbsent()方法后
100 Eric
101 Jack
102 Rose
103 Lucy
执行putAll()方法后
100 Eric
101 Jack
102 Rose
103 Lucy
104 Macy
7 Java HashMap例子:remove()
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java HashMap的例子
*/
import java.util.*;
public class Demo {
public static void main(String args[]) {
HashMap<Integer,String> map=new HashMap<Integer,String>();
map.put(100,"Eric");
map.put(101,"Jack");
map.put(102,"Paul");
map.put(103, "Rose");
System.out.println("初始化HashMap: "+map);
//删除元素
map.remove(100);
System.out.println("更新后: "+map);
//删除元素
map.remove(101);
System.out.println("更新后: "+map);
//删除元素
map.remove(102, "Paul");
System.out.println("更新后: "+map);
}
}
输出结果为:
初始化HashMap: {100=Eric, 101=Jack, 102=Paul, 103=Rose}
更新后: {101=Jack, 102=Paul, 103=Rose}
更新后: {102=Paul, 103=Rose}
更新后: {103=Rose}
8 Java HashMap例子:replace()
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java HashMap的例子
*/
import java.util.*;
class Demo{
public static void main(String args[]){
HashMap<Integer,String> hm=new HashMap<Integer,String>();
hm.put(100,"Eric");
hm.put(101,"Jack");
hm.put(102,"Rose");
System.out.println("初始化HashMap:");
for(Map.Entry m:hm.entrySet())
{
System.out.println(m.getKey()+" "+m.getValue());
}
System.out.println("更新后:");
hm.replace(102, "Rose");
for(Map.Entry m:hm.entrySet())
{
System.out.println(m.getKey()+" "+m.getValue());
}
System.out.println("更新后:");
hm.replace(101, "Jack", "Mark");
for(Map.Entry m:hm.entrySet())
{
System.out.println(m.getKey()+" "+m.getValue());
}
System.out.println("更新后:");
hm.replaceAll((k,v) -> "Lucy");
for(Map.Entry m:hm.entrySet())
{
System.out.println(m.getKey()+" "+m.getValue());
}
}
}
输出结果为:
初始化HashMap:
100 Eric
101 Jack
102 Rose
更新后:
100 Eric
101 Jack
102 Rose
更新后:
100 Eric
101 Mark
102 Rose
更新后:
100 Lucy
101 Lucy
102 Lucy
9 HashSet和HashMap的区别
HashSet仅仅包含value值,而HashMap是key-value对象(键和值对)。
热门文章
优秀文章