一.Collection
—是一个公共接口, 集合层次结构的根。
public interface Collection extends Iterable{}
注意:
如果将Collection 比作一个装有金币的口袋的话
容器是 null---->口袋都没有
而容器是empty--------> 口袋有,但是金币没有。
不一定会放入成功,因为容器不一定是线性结构。
也无法明确放到哪个位置上。
例子:容器中不允许出现相同的元素,当尝试放入重复元素时,就会产生放入失败的情况。
将容器中,和o相等的其中一个元素删除掉(equals)
只删除一个,但是不保证是哪一个
将c中所有元素都放到当前容器中,元素之间没有顺序。
public Iterator iterator() {}
Iterable :adj 具备迭代的能力
Iterate : v 迭代(遍历)
iterator:n 迭代器(用来迭代的对象)
Iterator it = list.iterator();
//使用it执行的Iterator对象,来进行遍历
注意:
对应的·是尾插操作,对于线性结构来说,尾插是不可能失败的(内存不在考虑的范围内),返回值永远为 true
将元素插入index指定下标处,如果存在理论上[ index ,size()) 所有元素逻辑上后移一位。
(1) boolean remove(Object o)方法:
删除第一个遇到与o 相等的元素,返回值代表是否成功。
(2)E remove(int index)方法:
将index 位置的元素从线性逻辑结构中取出并返回,让[ index+1,size())的所有元素,逻辑上前移一个位置。
永远返回 true
以 c 作为元素的比较器(天平),衡量元素大小进行排序。
用 element 替换index 位置的元素,并返回index位置原来的元素。
从前往后,第一个和e相等的元素的位置。
int lastIndexOf (E e)方法:
从后往前,最后一个和e相等的元素所在的位置。
将原有线性结构的[ fromIndex ,toIndex) 截取成一个新的线性结构并返回。
大部分的场景下都使用的是ArrayList方法,以ArrayList为例,观察上述方法的使用。
ArrayList list = new ArrayList<>();
List list = new ArrayList<>();
!构造普通顺序表时,容量采取默认值
new ArrayList<>();
!以capacity 作为初始容量,构造顺序表
new ArrayList<>(int capacity);
!以c中所有的元素,作为当前顺序表的元素构造顺序表
new ArrayList<>(Collection c);
等价于 new ArrayList<>(); list.addAll(c);