map,hashmap用法
Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键(key)对象和一个值(value)对象。用于保存具有映射关系的数据。
Map 集合里保存着两组值,一组值用于保存 Map 里的 key,另外一组值用于保存 Map 里的 value,key 和 value 都可以是任何引用类型的数据。Map 的 key 不允许重复,value 可以重复,即同一个 Map 对象的任何两个 key 通过 equals 方法比较总是返回 false。
Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。
HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。
public class Test09 {
public static void main(String[] args) {
HashMap users = new HashMap();
users.put("11", "张浩太"); // 将学生信息键值对存储到Map中
users.put("22", "刘思诚");
users.put("33", "王强文");
users.put("44", "李国量");
users.put("55", "王路路");
System.out.println("******** 学生列表 ********");
Iterator it = users.keySet().iterator(); //获取迭代器
while (it.hasNext()) { //最简单的遍历,让迭代器it逐个返回集合中的所有元素。
// 遍历 Map
Object key = it.next(); //两个都是对象,所以object,将kv值注入
Object val = users.get(key);
System.out.println("学号:" + key + ",姓名:" + val);
}
Scanner input = new Scanner(System.in);
System.out.println("请输入要删除的学号:");
int num = input.nextInt();
if (users.containsKey(String.valueOf(num))) { // 判断是否包含指定键
users.remove(String.valueOf(num)); // 如果包含就删除
} else {
System.out.println("该学生不存在!");
}
System.out.println("******** 学生列表 ********");
it = users.keySet().iterator();
while (it.hasNext()) {
Object key = it.next();//自己理解,有点链表的性质
Object val = users.get(key);//自己理解,有点方法的性质。
System.out.println("学号:" + key + ",姓名:" + val);
}
}
}
首先,先把这个方法new出来
HashMap<键的类型, 值的类型> 名字 = new HashMap<>;
名字.put("存入的键":"存入的值"); //如果是Integer类型,就没有""
根据键找值:名字.get("键");
遍历
Iterator it = users.keySet().iterator(); //获取迭代器 user是Map名字
while (it.hasNext()) { //最简单的遍历,让迭代器it逐个返回集合中的所有元素。
// 遍历 Map
Object key = it.next(); //两个都是对象,所以object,将kv值注入
Object val = users.get(key);
System.out.println("学号:" + key + ",姓名:" + val);
}
解释:往往遍历,需要使用迭代器
先通过迭代器.next获取键,然后通过get键,得到值。
keySet() 方法返回映射中所有 key 组成的 Set 视图。
keySet() 方法的语法为:
hashmap.keySet()
注:
import java.util.HashMap;
class Main {
public static void main(String[] args) {
// 创建一个 HashMap
HashMap<Integer, String> sites = new HashMap<>();
// 往 HashMap 添加一些元素
sites.put(1, "Google");
sites.put(2, "Runoob");
sites.put(3, "Taobao");
System.out.println("sites HashMap: " + sites);
// 返回所有 key 组成的 set 集合视图
System.out.println("Keys: " + sites.keySet());
}
}
执行以上程序输出结果为:
sites HashMap: {1=Google, 2=Runoob, 3=Taobao}
Keys: [1, 2, 3]

浙公网安备 33010602011771号