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值

相关推荐
wangjing_05221 小时前
C语言练习.if.else语句.strstr
c语言·开发语言
Tony_long74831 小时前
Python学习——字符串操作方法
开发语言·c#
SoraLuna2 小时前
「Mac玩转仓颉内测版26」基础篇6 - 字符类型详解
开发语言·算法·macos·cangjie
出逃日志2 小时前
JS的DOM操作和事件监听综合练习 (具备三种功能的轮播图案例)
开发语言·前端·javascript
前端青山3 小时前
React事件处理机制详解
开发语言·前端·javascript·react.js
耀耀_很无聊3 小时前
第1章 初识SpringMVC
java·spring·mvc
麻衣带我去上学3 小时前
Spring源码学习(一):Spring初始化入口
java·学习·spring
东阳马生架构3 小时前
MySQL底层概述—1.InnoDB内存结构
java·数据库·mysql
black0moonlight4 小时前
ISAAC Gym 7. 使用箭头进行数据可视化
开发语言·python
时光の尘4 小时前
C语言菜鸟入门·关键字·int的用法
c语言·开发语言·数据结构·c++·单片机·链表·c