JavaSE——数据结构(Map接口)

Map接口

现实生活中,我们经常需要成对存储某些信息。比如,我们使用的微信,一个手机号只能对应一个微信账户。这就是一种成对存储的关系。

Map集合用于存储“键值对”,键指的就是“key”,值指的就是“value”。Map集合中“key”必须唯一,但是“value”可以重复。


    例如:生活中,每个人都有“身份证号”,此处的“身份证号”指的就是“key”,每个“身份证号”对应着一个“姓名”,此处的“姓名”值的就是“value”。
    注意:生活中,身份证号肯定是唯一的,也就意味着Map集合中的“key”为唯一的,但是“姓名”不是唯一的,也就意味着Map集合中的“value”可以重复。

Map接口位于java.util包中,开发中Map接口最常用的实现类有HashMap、LinkedHashMap、TreeMap、HashTable、Properties等等。

Map接口中定义的方法

Object put(Object key, Object value);

存放键值对。

Object get(Object key);

通过键对象查找得到值对象。

Object remove(Object key);

删除键对象对应的键值对。

boolean containsKey(Object key);

Map容器中是否包含键对象对应的键值对。

boolean containsValue(Object value);

Map容器中是否包含值对象对应的键值对。

Collection values();

获取集合中所有的值

int size();

获取包含键值对的数量。

boolean isEmpty();

判断Map是否为空。

void clear();

清空本map对象所有键值对。

【示例】Map接口方法使用

// 创建一个map容器
Map<Integer, String> map = new HashMap<Integer, String>();
// 添加键值对
map.put(11, "zhansan");
map.put(4, "lisi");
map.put(6, "wangmazi");
map.put(6, "xiaowang");
// 获取键值对个数
System.out.println(map.size());
// 判断Map是否为空
System.out.println(map.isEmpty());
// 根据键获取值
System.out.println(map.get(11));
System.out.println(map.get(12));
// Map容器中是否包含键对象对应的键值对
System.out.println(map.containsKey(111));
// Map容器中是否包含值对象对应的键值对
System.out.println(map.containsValue("lisi"));
// 获取集合中所有的值
Collection<String> values = map.values();
// 删除键对象对应的键值对
map.remove(11);
// 清空本map对象所有键值对
map.clear();

注意:Map集合不能直接使用Iterator迭代器,因为迭代器只能在List接口和Set接口中使用。
  1.遍历Map集合的方式
  方式一:使用keySet()方法
     作用:能够获得Map集合中的所有key值,然后把所有的key值封装成Set集合返回。
  方式二:使用entrySet()方法
     作用:能够获得Map集合中的键值对,该键值对封装在“Map.Entry”对象中,然后把所有的Entry对象封装成Set集合返回。
  2.Map集合key的唯一性
    添加键值对的时候,如果Map集合中已经存在某一个key,那么会执行覆盖操作,最终保持了key的唯一性。

【示例】keySet() 方法使用

// 创建一个map容器
Map<Integer, String> map = new HashMap<Integer, String>();
// 添加键值对
map.put(11, "zhansan");
map.put(4, "lisi");
map.put(6, "wangmazi");
map.put(7, "xiaowang");
// 获取键(key)的set集合
Set<Integer> set = map.keySet();
// 迭代器
Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()) {
	// 获取到键key
	Integer key = iterator.next();
	// 输出map的key和value
	System.out.println("key: " + key + " value: " + map.get(key));
}

【示例】entrySet () 方法使用

// 创建一个map容器
Map<Integer, String> map = new HashMap<Integer, String>();
// 添加键值对
map.put(11, "zhansan");
map.put(4, "lisi");
map.put(6, "wangmazi");
map.put(7, "xiaowang");
// entrySet方法
Set<Entry<Integer, String>> entrySet = map.entrySet();
// 获取迭代器
Iterator<Entry<Integer, String>> iterator = entrySet.iterator();
while(iterator.hasNext()) {
	// 获取Entry对象
	Entry<Integer, String> next = iterator.next();
	// 输出map的key和value
	System.out.println("key: " + next.getKey() + " value: " + next.getValue());
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Collection接口Java集合框架的顶级接口,它定义了一些通用的方法,用于管理对象的集合。它是List、Set和Queue等子接口的父接口,但不是Map集合的父接口。\[1\] Collection接口可以接受多种实现类的引用,因此可以用来管理不同类型的集合对象。然而,在实际开发中,一般更常用它的子接口List、Set和Queue来操作集合。\[2\] List集合是有序的、可重复的集合,可以添加引用数据类型(包括八大基本数据类型)。List集合有三种遍历方式:下标遍历、foreach遍历和迭代器遍历。下标遍历可以通过索引访问集合中的元素,但在移除元素时需要注意隔行逻辑操作。foreach遍历可以简洁地遍历集合中的元素,但不能在遍历过程中移除元素。迭代器遍历是一种通用的遍历方式,可以在遍历过程中安全地移除元素。\[3\] 总结来说,Collection接口Java集合框架的顶级接口,用于管理对象的集合。它的子接口List、Set和Queue更常用于实际开发中。List集合是有序的、可重复的集合,可以使用下标遍历、foreach遍历和迭代器遍历来操作。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [集合框架之Collection接口Map接口](https://blog.csdn.net/CLa11111111/article/details/124158029)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【JavaSE系列】Java集合框架之Collection,Map接口](https://blog.csdn.net/m0_59139260/article/details/122273690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [collection接口map接口集成结构图图解](https://blog.csdn.net/qq_43224049/article/details/82759074)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值