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值

相关推荐
Lizhihao_7 分钟前
JAVA-堆 和 堆排序
java·开发语言
极客先躯12 分钟前
高级java每日一道面试题-2025年3月21日-微服务篇[Nacos篇]-什么是Nacos?
java·开发语言·微服务
工业互联网专业20 分钟前
基于springboot+vue的动漫交流与推荐平台
java·vue.js·spring boot·毕业设计·源码·课程设计·动漫交流与推荐平台
雷渊23 分钟前
深入分析Spring的事务隔离级别及实现原理
java·后端·面试
try again!26 分钟前
rollup.js 和 webpack
开发语言·javascript·webpack
rebel34 分钟前
Java获取excel附件并解析解决方案
java·后端
du fei37 分钟前
C# 窗体应用(.FET Framework) 线程操作方法
开发语言·c#
du fei38 分钟前
C#文件操作
开发语言·c#
并不会1 小时前
多线程案例-单例模式
java·学习·单例模式·单线程·多线程·重要知识
数据攻城小狮子1 小时前
Java Spring Boot 与前端结合打造图书管理系统:技术剖析与实现
java·前端·spring boot·后端·maven·intellij-idea