先说下HashMap的定义
HashMap是一个散列表,存储的内容是键值对(key-value)映射。
HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。最后一点和Hashtable不同,Hashtable是支持线程同步的。
HashMap是无序的,不会记录插入的顺序。HashMap继承于 AbstractMap,实现了Map/Cloneable/java.io.Serializable
HashMap的key与value类型可以相同也可以不同:可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。例如:Map<Integer,String> map = Map.of(1,"A",2,"B",3,"C");
HashMap中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。基本类型对应的包装类表如下:
boolean Boolean
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
HashMap类位于 java.util包中,使用前需要引入
import java.util.HashMap 在使用HashMap时,工具会自动引入
接下来,说下HashMap的访问元素: 可以使用 get(key)方法来获取key对应的value value = map.get(key)
删除元素 可以使用remove(key)方法来删除key对应的键值对(key-value) 然后生成的数组是无序的
删除所有键值对 使用 clear方法
计算HashMap的大小 可以使用size()方法 map.size() 这里size也是key和value的个数
迭代HashMap 使用循环 for-each来迭代HashMap中的元素;如果只想获取key,可以使用keyset()方法;如果只想获取value,可以使用values方法
接下来,我们来看实例吧:
1.获取HashMap的key和value值
//创建HashMap的对象 sites
HashMap<Integer,String> sites = new HashMap<Integer, String>();
//添加键值对
sites.put(1,"Google");
sites.put(2,"Baidu");
sites.put(3,"Zhihu");
sites.put(4,"JD");
System.out.println(sites); //key-value键值对
//根据key值获取对应的value值
String key1 = sites.get(3);//当key为3时,找到map中对应的value值
//获取所有的key值,可以将所有的key值弄成数组
System.out.println("HashMap的key值");
for (int key:sites.keySet()
) {
System.out.println(key);
}
结果:
{1=Google, 2=Baidu, 3=Zhihu, 4=JD}
HashMap的key值
1
2
3
4
HashMap的value值
Baidu
Zhihu
JD
2.在一个循环中获取key和value值,需要知道key和value的类型
//获取所有的values值
System.out.println("HashMap的value值");
for (String str:sites.values()
) {
System.out.println(str);
}
System.out.println("-----------------------");
//还可以通过一个循环,获取HashMap的key和value值 key为int值,value可以通过sites.get(i)获得
for (int i:sites.keySet()
) {
System.out.println("key的值为: " + i + "values值为: " + sites.get(i));
}
结果:
key的值为: 1values值为: Google
key的值为: 2values值为: Baidu
key的值为: 3values值为: Zhihu
key的值为: 4values值为: JD
3.删除HashMap中的元素
//创建String的key和String的value
HashMap<String,String> map = new HashMap<String,String>();
map.put("one","Google");
map.put("two","Baidu");
map.put("Three","Zhihu");
map.put("Four","JD");
System.out.println(map);
map.remove("one");
System.out.println(map); //无序的,但是删除了 one = Google
结果:
{one=Google, Four=JD, two=Baidu, Three=Zhihu}
{Four=JD, two=Baidu, Three=Zhihu}
4.清除HashMap
map.clear();
System.out.println(map); //HashMap中的所有元素都删除
结果:
{}
今天先到这里吧
标签:map,Java,HashMap,sites,value,---,key,println From: https://blog.51cto.com/u_11894/5785716