【HashMap和HashSetyi以及散列表的拉链法,线性探测法详解】

在这里插入图片描述

🌈个人主页SKY-30
个人推荐基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解
学好数据结构,刷题刻不容缓点击一起刷题
🌙心灵鸡汤总有人要赢,为什么不能是我呢
在这里插入图片描述

📢📢📢Map 和Set 概念

map和set是一种用来搜索的数据结构,其搜索效率与具体实例化的子类有关,之前我们搜索的方法有:

  • 直接遍历:利用for循环,暴力求解,事件复杂度为O(N)
  • 二分查找:时间复杂度:O(logN),搜索之前要求序列是有序的

但是如果我们对于存储的数据,经常要执行修改和删除的操作,那么上述的两种操作就非常不适合了,我们这里就引出两个新的数据结构-map和set。

📢📢📢模式

对于map来说,它的存储形式是形如K-(key),V-(value),这种类似于键值对的这种形式,进行存储,而set,则是只有key这一种形式。

📢📢📢Map

在这里插入图片描述
Map是一个接口,没有继承collection,该类的存储形式是<K,V>并且这里的K是唯一的,不能重复。

📢📢📢Map.Entry<K,V>

Map.Entry<K,V>是Map内部用来存放<key,value>键值对的映射关系的一个内部类,该类提供了<Key,value>获取,value的设置,即Key的比较形式

方法 解释
K getKey() 返回 entry中的key
V getValue 返回entry中的value
V setValue 将键值对中的value替换为指定的value

📢📢📢Map的一些常用方法

在这里插入图片描述

📢📢📢Map的一些注意事项

  • Map是一个接口,不能直接实例化对象,如果要实例化,我们只能实例实现其接口的类,TreeMap和HashMap。
  • Map中Key的元素是唯一的,Value可以重复的
  • 在Treemap中插入元素时,Key不能为空,否则会报错,value却可以为空,需要注意在HashMap中是可以插入为空的
  • Map中的Key是不能修改的,要想修改的话,只能删除对应的数据,然后重新插入,但是Value是可以重新修改的。
  • Treemap和HashMap的区别,这个后面说
import java.util.TreeMap;
import java.util.Map;
public static void TestMap(){
   
Map<String, String> m = new TreeMap<>();
// put(key, value):插入key-value的键值对
// 如果key不存在,会将key-value的键值对插入到map中,返回null
m.put("林冲", "豹子头");
m.put("鲁智深", "花和尚");
m.put("武松", "行者");
m.put("宋江", "及时雨");
String str = m.put("李逵", "黑旋风");
System.out.println(m.size());
System.out.println(m);
// put(key,value): 注意key不能为空,但是value可以为空
// key如果为空,会抛出空指针异常
//m.put(null, "花名");
str = m.put("无名", null);
System.out.println(m.size());
// put(key, value):
// 如果key存在,会使用value替换原来key所对应的value,返回旧value
str = m.put("李逵", "
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值