day57 集合 List Set Map

List实现类

List接口特点:元素有序 可重复

Arraylist 可变数组

jdk 8 以前Arraylist容量初始值10

jdk8 之后初始值为0,添加数据时,容量为10;

ArrayList与Vector的区别?

LinkList:双向链表

优点:不连续存储,随机添加和删除操作方法

缺点:不连续存储,遍历速度慢

有链表头和链表尾

新增针对链表头和链表尾的操作方法

Set集合及实现类

Set接口 extends Collection 特点:无序 唯一

HashSet

TreeSet

Map集合及实现类

Map集合 以key-value存储数据

key:无序唯一

value:无序可重复

key-value 映射关系唯一

1 添加方法

V put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。

2 删除

void clear() 从此映射中移除所有映射关系(可选操作)。

V remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

boolean remove(Object key, Object value) : 仅当指定的密钥当前映射到指定的值时删除该条目。

3 改

V put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。

V replace(K key, V value) 只有当目标映射到某个值时,才能替换指定键的条目。

boolean replace(K key, V oldValue, V newValue) 仅当当前映射到指定的值时,才能替换指定键的条目。

4 查:

boolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。

boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。

V get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

V getOrDefault(Object key, V defaultValue) : 返回到指定键所映射的值,或 defaultValue如果此映射包含该键的映射。

5 遍历方法

Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的 Set 视图。

Set<K> keySet() : 返回此映射中包含的键的 Set 视图。

Collection<V> values() 回此映射中包含的值的 Collection 视图。

forEach()

6 其他方法

boolean isEmpty() : 如果此映射未包含键-值映射关系,则返回 true。

int size() 返回此映射中的键-值映射关系数。

HashMap

HashMap的初始容量16 加载因子0.75扩容为2为2倍

​​​​​​​ ​​​​​​​ Hashtable初始容量11 加载因子0.75

扩容为2倍+1

HashMap key,value可以为null

HashTable key,value都不可以为null ​​​​​​​ ​​​​​​​

HashMap中的key如何去除重复项?

调用key的hashCode与equals方法

TreeMap:二叉树

左小,右大的方式存储

读取:按中序(左-中-右)

key:通过比较规则,排序并去除重复

注意:key 必须为同一种数据类型的值。不能出现null值

相关推荐
zhangfeng11335 分钟前
错误于make.names(vnames, unique = TRUE): invalid multibyte string 9 使用 R 语言进行数据处理时
开发语言·r语言·生物信息
七夜zippoe12 分钟前
缓存三大劫攻防战:穿透、击穿、雪崩的Java实战防御体系(三)
java·开发语言·缓存
lllsure16 分钟前
【Docker】镜像
java·spring cloud·docker
zhysunny19 分钟前
51.不可变基础设施:云原生时代的「乐高城堡」建造法
java·云原生
郝学胜-神的一滴23 分钟前
Linux命令行的核心理念与实用指南
linux·运维·服务器·开发语言·程序人生
无名客026 分钟前
SQL语句执行时间太慢,有什么优化措施?以及衍生的相关问题
java·数据库·sql·sql语句优化
qq_4335545428 分钟前
C++ Dijkstra堆优化算法
开发语言·c++·算法
风槐啊31 分钟前
邪修实战系列(3)
java·ide·spring boot·spring·tomcat
咋吃都不胖lyh35 分钟前
SQL数据分析原代码--创建表与简单查询
java·数据库·sql
毕设源码-朱学姐37 分钟前
【开题答辩全过程】以 _基于SpringBoot技术的“树洞”心理咨询服务平台的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端