1.特点与概述:
HashMap底层是哈希表结构的
依赖hashCode方法和equals方法保证键的唯一
如果键存储的是自定义对象,需要重写hashCode和equals方法
2. 结构特征:
HasHMap<key,value> c=new Map<key,value>();其中key,value常见有俩种类型:字符串类型(String)、整型(integer),c为可取任意名称。
3. 添加元素:
HashMap中添加键值对(key-value)可以使用put()方法:
例如:
// 创建 HashMap 对象 Sites
HashMap<Integer,String>dreams=new HashMap<Integer, String>();
// 添加键值对
dreams.put(1, "南京");
dreams.put(2, "苏州");
dreams.put(3, "香港");
dreams.put(4, "澳门");
4.输出语句(以上面案例为主):
a.直接输出:
System.out.println(dreams);
结果:{1=南京, 2=苏州, 3=香港, 4=澳门}
b.使用get(key)方法来获取key对应的value:
System.out.println(dreams.get(3));
结果:香港
5. 用删除元素remove(key)方法删除对应的键值对(以上面案例为主);
a:单个删除:在括号里输入"key"-----精确查找
dreams.remove(2);//则删掉数据2的信息
System.out.println(dreams);结果:{1=南京, 3=香港, 4=澳门}
b.全部删除用clear方法:
dreams.clear();
System.out.println(dreams);结果:{}
6.迭代HasHMap
有for-each和Iterator迭代,下面就以for-each为例:
用for-each来迭代HashMap中的元素
若只想获取 key,可以使用 keySet() 方法,然后可以通过 get(key) 获取对应的 value;
若只想获取 value,可以使用 values() 方法。
for (Integer i : dreams.keySet()) {
System.out.println("key: " + i + " value: " + dreams.get(i));
}
// 返回所有 value 值
for(String value: dreams.values()) {
// 输出每一个value
System.out.print(value + ", ");
}
补充:可能遇到的情况,当eclipse打开时发现中文乱码!
1. 首先关闭有乱码的文件(不要修改里面的内容)
2. 将鼠标移到此文件上,右击找到 Properties→Resource
3. 找到此界面右边的Text file encoding栏,选择Other
一般情况下:都是在GBK与UTF-8中,互相切换(其中一个无法解决就换另一个)。
4. 最后点击 Apply and Close
注意:在遇到中文乱码的文件,一定先不要急着去将乱码修改,这样会导致上面的步骤可能出错,致使乱码没有解决