大数据必学Java基础(五十四):List接口深入了解
List接口深入了解
一、List接口的常用方法和遍历方式
- package com.lanson.test01;
-
- import com.sun.org.apache.xerces.internal.dom.PSVIAttrNSImpl;
-
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
-
- /**
- * @author : lanson
- */
- public class Test03 {
- //这是main方法,程序的入口
- public static void main(String[] args) {
- /*
- List接口中常用方法:
- 增加:add(int index, E element)
- 删除:remove(int index) remove(Object o)
- 修改:set(int index, E element)
- 查看:get(int index)
- 判断:
- */
- List list = new ArrayList();
- list.add(13);
- list.add(17);
- list.add(6);
- list.add(-1);
- list.add(2);
- list.add("abc");
- System.out.println(list);
- list.add(3,66);
- System.out.println(list);
- list.set(3,77);
- System.out.println(list);
- list.remove(2);//在集合中存入的是Integer类型数据的时候,调用remove方法调用的是:remove(int index)
- System.out.println(list);
- list.remove("abc");
- System.out.println(list);
-
- Object o = list.get(0);
- System.out.println(o);
-
- //List集合 遍历:
- //方式1:普通for循环:
- System.out.println("---------------------");
- for(int i = 0;i<list.size();i++){
- System.out.println(list.get(i));
- }
- //方式2:增强for循环:
- System.out.println("---------------------");
- for(Object obj:list){
- System.out.println(obj);
- }
- //方式3:迭代器:
- System.out.println("---------------------");
- Iterator it = list.iterator();
- while(it.hasNext()){
- System.out.println(it.next());
- }
-
-
- }
- }
二、ArrayList实现类(JDK1.7)
【1】在idea中切换JDK的方法
【2】ArrayList实现List接口的失误
集合创始人承认了这个失误,但是在后续的版本中没有删除,觉得没必要
【3】底层重要属性
在JDK1.7中:在调用构造器的时候给底层数组elementData初始化,数组初始化长度为10
对应内存
调用add方法
- ArrayList al = new Array
- System.out.println(al.add("abc"));
- System.out.println(al.add("def"));
当数组中的10个位置都满了的时候就开始进行数组的扩容,扩容长度为 原数组的1.5倍
三、ArrayList实现类(JDK1.8)
【1】JDK1.8底层依旧是Object类型的数组,size:数组中有效长度
【2】ArrayList al = new ArrayList();调用空构造器
【3】add方法
四、Vector实现类
【1】底层Object数组,int类型属性表示数组中有效长度
【2】Vector v=new Vector();调用构造器
【3】add方法