集合1
集合和数组的区别:1、集合长度可变 数据不可变 集合默认初始长度为10,添加的元素超过了集合长度会每次增加自身0.5倍的长度
2、集合只能存储引用数据类型 数组可以存储任何的数据类型 如果集合想存储基本数据类型,可以将基本数据类型包装成包装类 int----Integer
单列collection
Collection是list和set的父类接口
List 元素可以重复 set不行 list有索引set没有
他们两个都是接口 下面的是实现接口的类
ArrayList:底层是数组结构
linkedList:底层是双向列表结构
Collection方法:
add、clear、contains、isEmpty、remove、removeIf(里面用lambda表达式)、size
需要注意的是:contains可以被集合对象调用,也可以被String类型的对象调用,使用该方法时需要明确谁是使用对象。removeIf()删除集合中所有符合lambda表达式中的元素
list方法
增删改查
add、remove、set、get、
迭代器遍历
所有的集合都可以用迭代器进行遍历
1、获取迭代器对象
Iterator it = list.iterator();
it.hasNext():判断下一个索引位置是否还有元素
it.next():获取当前元素的位置,并将指针指向下一个元素
//迭代器遍历遍历
while(it.hasNext()){
sout(it.next())
}
增强for循环
底层也是迭代器原理
for(E e:List){
sout(e)
}
注意事项:迭代去对象不能和集合对象同时被使用
数据结构
栈:先进后出
堆:先进先出 数据从后端进前端出
数组:查询快 增加删除慢
链表:查询慢 增加删除快
LinkedList特有的方法
addf、addl、removef、removel、getf、getl
f—first l—last