Java集合

集合:存放引用数据类型的容器  主要增删改查
Collection:集合 是一个接口,继承了Iterable里面有很多方法 是List和Set的父类
List:也是一个接口,继承了Collection  特点:有序重复
Set:  也是一个接口,继承了Collection,无序不重复
泛型:指的就是容器中元素的数据类型(尖括号) 省去了获取元素的时候类型转换

List接口:里面有很多方法,包含增删改查
特点:内存空间连续


ArrayList
1.底层是数组(Ovject[])
2.ArrayList 元素个数 size方法
3.增(添加):add(元素)
4.删(删除):remove(索引):删除指定索引位置的元素
remove(元素):删除第一次出现的元素
5.改(修改):set(索引)
6.查(查询):get(索引)
7.全部删除:chear(删除所有元素)
8.底层是数组,数组的长度和size不是一回事
如果size()小于数组长度,直接将元素放入size()当中
如果size()大于等于数组长度,那么就要让数组长度加一,然后将元素放入数组
ArrayList与LInkedList的区别:
1.底层数据结构不一样 数组 链表
2.Arraylist查询快,增删慢
3.LinkedList查询慢,增删快

HashSet(※):无序(没有索引)不重复(可以去重)
去重,HashSet开发用的较少,一般集合都用ArrayList
在某些场合也需要ArrayList去重,可以HashSet
1.增(添加):add(元素)
2.删(删除):remov(元素)
3.全部删除:chear(删除所有元素)
增强for循环foreach:
格式:for(数据类型 变量 : 集合名称){
使用变量

迭代器
iterator
hasNext
next

HashMap:双列集合 <K,V>
put  如果键存在就是修改,不存在就是添加
get
remove
size
keySet

工具类:Collections
sort 排序
reverse 反转
shuffle 打乱
min 最小值
max 最大值
addAll:
Integer[] array = list.toArray(new Integer[0]);
List.of(数组名称)

面试题 
1. ArrayList和LinkedList的区别
ArrayList:查询快 增删慢
LinkedList:查询慢 增删快
2.hashSet和hashtable的区别
hashSet:线程不安全  效率高
hashtable:线程安全 效率低(有锁)
3.jdk8 以后HashMap的数据结构是: 数组+链表+红黑树
当放入某个元素的时候,hashCode算出来要放入的位置,该位置存在元素那就以链表的方式放到下面,如果元素超过八个,就变成红黑树。
如果红黑树情况下,map删除元素,当红黑树中的元素少于6个的时候,红黑树变成链表。泊松分布。
HashMap初始化的时候,数组长度为16,
负载因子是0.75
扩容2倍
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值