java set与map

java set与map

Set 无序无重复
1.具体的实现类
HashSet
TreeSet
2.基本的使用
3.无序 无重复
无序:我们使用集合存放元素的顺序 集合内取出来的顺序不一致
集合本身是有自己的算法排布顺序 hash算法

HashSet---->(HashMap (数组+链表) 散列表 临接连表)
1.java.util
2.如何创建对象 无参数 有参数
3.集合容器的基本使用
增删改查
boolean = add(value) addAll(collection c) retainAll removeAll
boolean = remove(Object)
没有修改方法
iterator() 获取一个迭代器对象
size()
4.无重复的原则
首先通过String类型和Person类型存储
大概猜测 无重复的原则 利用equals方法进行比较
如果我们想要让Person对象的name一致 认为是同一个对象
我们可以重写equals方法
重写了equals方法 发现还没有产生无重复的效果
证明可能原则不止equals一个方法这么简单
还有另一个规则同时起着作用 hashCode方法 int
五个Person对象只剩一个 第一次存储的 还是最后一次存储
set集合是发现重复的元素 拒绝存入 存储的是第一个
TreeSet-----(TreeMap 二叉树 利用Node(left item right))
无序无重复 java.util
无参数构造方法 带Collection构造方法
基本常用方法
add(E e) iterator() remove(E e) 没有修改 size()
无重复的规则是如何实现的
treeSet集合本身有顺序 我们指的无序存入的和取出来的不一致
compareTo---->String类 按照字母的自然顺序排布(Unicode)
如果想要把自己写的类型 比如Person对象存入TreeSet集合里
不能随意的存储 需要让自己写的类先实现Comparable接口

Map 映射 通过某一个key可以直接定位到一个value值
存储的方式以 键值对 存储 key-value
key无序无重复 value无序可重复
key无序还是一样,指的是存入顺序与取得顺序不一致
key无重复当然指的是 元素不能一致
1.map基本使用
HashMap
TreeMap
Properties
HashMap

HashMap:
1.包 java.util
2.如何创建对象
3.基本方法
增删改查
增put(key,value) 存放一组映射关系 key-value
1.key存储的顺序与取得顺序不同
2.不同的key可以存储相同的value
3.key若有相同的 则将 原有的value覆盖而不是拒绝存入(跟set刚好相反)
删E = remove(key);
改put(key,value1) put(key,value2)
replace(key,newValue)
查E = get(key)
遍历map集合
获取到所有的key 遍历key 通过key获取value
Set = keySet()获取全部的key
Set = entrySet();
size();
4.除了上述几个常用的方法外 其他API中提供的方法
clear containsKey(key) containsValue(value)
getOrDefault(key,defaultValue);如果key存在就返回对应的value 若没有找到则返回默认值
isEmpty()
putAll(map)
putIfAbsent(key,value); 如果key不存在才向集合内添加 如果key存在就不添加了
5.map集合在什么情形下用?
1.想要存储一组元素
数组 or 集合 如果存储的元素以后长度不变用数组 如果长度以后不确定 用集合
2.如果发现长度以后不确定—>集合
List Set Map
List家族有序的 存储有顺序用这个
ArrayList 更适合遍历轮询
LinkedList 更适合插入和删除
Stack LIFO
Set家族无重复 存储元素希望自动去掉重复元素用这个
Hash 性能更高
Tree 希望存进去的元素自动去重复 同时还能自动排序
Map家族k-v 通过唯一的k快速找寻v用这个
Hash 性能更高
Tree 希望存进去的元素key自动排序

TreeMap 自然有序 按照Unicode编码自然有序
map集合中的key需要可比较的 key的对象需要实现Comparable接口
1.java.util包
2.构造方法
无参数 带map参数
3.常用方法
put get remove replace size
4.底层数据结构的存储
红黑二叉树

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值