Collection:所有集合类的基础接口,定义了标准
里面的数据都是无序、可重复的(没有顺序要求,也没有去重要求)
里面的方法定义了一个集合应该有的功能:
添加一个或多个元素add()、addAll()....//添加在某个位置,其他往后移,
可以在最后一个后面添加,再往后跳跃添加会越界
移除一个或多个元素remov().....
更改所有元素retainsAll....
查看是否包含contains()、containsAll
List:Collection的子接口,里面的数据都是有序,可重复的
get(int index)
set(int index,Object obj)//覆盖存在的数据,但是不可超过本身长度
remove(int index)、remove(Object obj)
contains(Object obj)
add(Onject obj)、add(int index,Object obj)
有序可以有很多种:线性表(数组、队列、链表)
Set:子接口,里面的数据都是无序,不可重复的
PS:上面说的顺序是指插入顺序
List常用实现类:ArrayList和LinkedList
ArrayList底层是可变数组、默认初始长度是10
如果最后长度不够,则扩容1.5倍grow
如果最后长度过长,会截断到实际长度trimToSize()
三种遍历方式:(前两种与之前学的相同)
for()
增强for()
迭代器:Iterator itor=list.iterator();//无序的数据输出使用这个好
LinkedList底层是Node节点构成的双向链表,增删快,查插慢;