map,hashmap用法

概念

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键(key)对象和一个值(value)对象。用于保存具有映射关系的数据。

Map 集合里保存着两组值,一组值用于保存 Map 里的 key,另外一组值用于保存 Map 里的 value,key 和 value 都可以是任何引用类型的数据。Map 的 key 不允许重复,value 可以重复,即同一个 Map 对象的任何两个 key 通过 equals 方法比较总是返回 false。

Map 中的 key 和 value 之间存在单向一对一关系,即通过指定的 key,总能找到唯一的、确定的 value。从 Map 中取出数据时,只要给出指定的 key,就可以取出对应的 value。

Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。

HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。

img

 

 

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);
      }
  }
}
 
 

HashMap

首先,先把这个方法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键,得到值。

 

Java HashMap keySet() 方法

keySet() 方法返回映射中所有 key 组成的 Set 视图。

keySet() 方法的语法为:

hashmap.keySet()

注:hashmap 是 HashMap 类的一个对象。

 

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]
 
posted @ 2022-07-31 21:57  锦书南辞  阅读(333)  评论(0)    收藏  举报