用前须知
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
HashMap 是无序的,即不会记录插入的顺序。
HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口
HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。
Map<String, String> map = Map.of("你想输入的","你想输入的", "你想输入的", "你想输入的");
Map<String, int> map = Map.of("你想输入的",1, "你想输入的", 1);
HashMap 类位于 java.util 包中,使用前需要引入它,语法格式:
import java.util.HashMap; // 引入 HashMap 类
简单实用
// 引入 HashMap
import java.util.HashMap;
public class Test {
public static void main(String[] args) {
// 创建 HashMap 对象 Name
HashMap<Integer, String> Name= new HashMap<Integer, String>();
// 添加键值对
Name.put(1, "good");
Name.put(2, "hello");
Name.put(3, "beautiful");
Name.put(4, "hai");
System.out.println(Name);
}
}
访问
// 创建 HashMap 对象 Name
HashMap<Integer, String> Name= new HashMap<Integer, String>();
// 添加键值对
.
.
.
.
.
System.out.println(Name.get(1));
删除
//删除某个
Name.remove(1);
//删除全部
Name.clear();
计算
System.out.println(Name.size());
迭代 HashMap
可以用 for-each 来迭代 HashMap 中的元素
public class Test {
public static void main(String[] args) {
// 创建 HashMap 对象 Sites
HashMap<Integer, String> Name= new HashMap<Integer, String>();
// 添加键值对
...
// 输出 key 和 value
for (Integer i : Name.keySet()) {
System.out.println("key: " + i + " value: " + Sites.get(i));
}
// 返回所有 value 值
for(String value: Name.values()) {
// 输出每一个value
System.out.print(value + ", ");
}
}
}