前段时间学习了ArrayLsit,不仅学习了里面的源码,老师还带着我们简单的敲了一下源码,做了集合的工具包,虽然和JDK中的util相差甚远,但是也能用,而且功能也不差,下面我就来总结一下。
ArrayList的底层是数组的结构,但是由于数组的劣势:1、插入和删除性能低下。2、容量是固定的,如果要存的东西不固定,会很难操作。3、存的数据类型必须一致。所以就有了ArrayList集合,弥补了数组的数组的缺点。但是底层却也是数组。
首先我先介绍一下里面的常用方法和其作用:
1、构造参数,有无参构造和有参构造两种,就是一个是空的集合,一个给了长度
//无参构造调用
List list = new ArrayList<>();
//有参构造调用,,指定长度为10;
List list = new ArrayList<>(10);
2、返回集合中元素个数
int size();
//调用
list.size();
3、根据指定对象找下标,从前往后找,有多个元素,只返回第一个下标,传入一个元素,找到这个元素的下标,并且返回
int indexOf(T t);
//调用 将t替换成你要找的元素,然后用以这个int类型的元素接收一下返回值
int index = lsit.indexOf(t);
4、根据对象找下标,从后往前找,如果有多个相同元素,只返回最后一个元素下标
int lastIndexOf(T t);
//调用
int index = list.lastIndexOf(t);
5、添加元素,添加到列表末尾
boolean add(T t);
//调用
list.add(t);
6、在指定位置添加元素
void add(int index,T t);
//调用
list.add(index,t);
7、添加一串元素,也是添加到末尾
void add(List<T> lsit);
//调用 传进去的是一个列表
list.add(list);
8、在指定位置添加一串元素
void add(int index,List<T> list);
//调用
list.add(index,list)
9、替换指定位置元素,并且返回被替换的元素
T set(int index,T t);
//调用
list.set(index,t);
10、获取指定下标的元素
T get(int index);
//调用
list.get(index);
11、删除指定位置的元素,并且返回被删除的元素
T remove(int index);
//调用
list.remove(index);
12、删除一段元素,给出开始和结束位置
List<T> remove(int fromIndex,int toIndex);
//调用
list.remove(fromIndex,toIndex);
13、删除指定元素
boolean remove(T t);
//调用
list.remove(t);
14、删除一串元素
void remove(List<T> list);
//调用
list.remove(lsit);
15、保留列表中含有的元素
void retain(List<T> list);
//调用
list.retain(list);
16、截取一段列表,并且返回这个截取的列表
List<T> subList(int fromIndex,int toIndex);
//调用
list.subList(fromIndex,toIndex);
17、排序
void sort(Comparator<T> comparator);
//调用
list.sort(new Comparator(T));
18、改变数组的大小,是数组大小个元素个数一样
void trimToSize();
//调用
lsit.trimToSize();
19、调用这个方法,将集合变成数组,并且返回一个数组
Object[] toArray();
//调用
list.toArray();
20、清空集合
void clear();
//调用
list.clear();
21、返回集合 长度
int capacity();
//调用
list.capacity();
22、迭代器
Iterator<T> iterator();
//调用
Iterator<Integer> t = new iterator();
while(t.hasNext()){
Integer num = t.next();
System.out.println(num);
}