1、List集合的基本特点:有序、对象可以重复。List集合的有序指的是先进先出,集合是一个可变长度的数组,集合的默认长度:如果有给过赋值,那么就是赋值的长度;如果没有赋值的话,长度为0,0来自于EMPTY_ELEMENTDATA (静态的常量值)。
2、List集合的三种取值方式:for循环、foreach循环、Iterator迭代器。
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("d");
list.add("a");
//List集合的取值
//方法一
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
//方法二
for (Object s : list) {
System.out.println(s);
}
//方法三
Iterator it = list.iterator();
while(it.hasNext()) {
System.out.print(it.next());
}
3、List集合移除对象的注意事项:比如我想移除List集合里的奇数,用for循环不能将奇数都移除掉,因为用for循环时,List里的对象的位置会往前移,会漏掉;用foreach也不能将奇数都移除掉,因为用foreach时不能改变集合的长度,会报java.util.ConcurrentModificationException当前集合改变异常;用迭代器则可以把所有的奇数都移除掉,因为用迭代器时,List里对象的位置是不变的,所以能全部移除掉。
4、List集合的调优:List集合本质就是可变长度的数组,它的默认初始容量是10,负载因子是0.5,如果要做List集合的调优的话,根据实际的业务场景制定初始容量即可。
5、拆箱与装箱:将基本数据类型转换为引用数据类型,被专业称为装箱的过程;将引用数据类型转换为基本数据类型,被专业称为拆箱的过程。
List list=new ArrayList<>();
//new Integer(23):将基本数据类型转换为引用数据类型,被专业称为装箱的过程
list.add(34);
list.add(new Integer(23));
list.add(new Integer(35));
list.add(new Integer(9));
list.add(new Integer(274));
for (int i = 0; i < list.size(); i++) {
Object obj = list.get(i);
if(obj instanceof Integer) {
Integer tt=(Integer)obj;
//tt.intValue():将引用数据类型转换为基本数据类型,被称为拆箱
int iv = tt.intValue();
if(iv%2==0) {
System.out.println(iv);
}
}
}