
构造函数有以下泛型参数:(其它有该构造函数的集合类均可这样子处理)

注意事项:
-
长度方法的区别:
-
数组用
.length获取元素长度 -
String用.length()获取元素长度 -
集合类用
.size()获取元素长度
-
-
ArrayList不是线程安全的 ,在单线程下可以使用,在多线程中可以选择CopyOnWriteArrayList。 -
ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表 。

注意事项:
-
subList()中拿到的List对象是原来List对象中的一部分,对这部分进行修改,是会影响到原对象的! -
要使用迭代器,必须要实现
Iterator接口,并且重写iterator方法! -
注意
List<Integer> tmp = null** 表示 **tmp是没有引用任何对象 ,而List<Integer> tmp = new ArrayList<>()** 表示有引用对象,但只是一个空盒子** ! -
List.copyOf()方法返回的List是不可变的! -
下图是两个拷贝函数的区别:

遍历
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(10);
list.add(20);
list.add(30);
list.add(40);
list.add(50);
*// 1. 下标遍历(推荐⭐)*
* *for(int i = 0; i < list.size(); i++) {
System.*out*.println(list.get(i));
}
*// 2. for-each遍历(推荐⭐)*
* *for(Integer e: list) {
System.*out*.println(e);
}
*// 3. 迭代器遍历:使用Iterator的hasNext()和next()方法*
* *Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
System.*out*.println(iter.next());
}
}