List的基本运用和常用API
List是collection的子接口,集合List中的元素有三个特点1.元素都是有序排列 2.元素都有下标 3.元素可以重复
List常用的方法有:
添加元素的方法: add( )

List list = new ArrayList();    //  因为list是接口所有要用多态进行初始化
        list.add("a");           //add一个元素,直接在集合的最后一位添加
        list.add("b");
//add(int i, Object obj);选定一个下标,在下标处插入这个元素,这里要注意的是下标不要越界
        list.add(0, "c");

删除元素的方法: remove( )

List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add(0, "c");
        list.remove("a");//删除元素
        list.remove(0);//删除下标处的这个元素

获取某个位置的元素:get()

List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add(0, "c");
        list.get(1);//根据下标进行取值

修改某个位置上的元素:set()

list.add("a");
        list.add("b");
        list.add(0, "c");
        list.set(0, "d");//根据下标修改该处的值

移除某个位置上的元素 remove()

List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add(0, "c");
        list.remove("a");//移除集合中"a"元素
        list.remove(0);//移除集合中下标为0的元素

List的迭代器:这里我们要注意的是list有专门的迭代器,也继承了父接口中的迭代器,下面我们来看一下两者的区别
需求:遍历一个集合,如果该集合中含有”a”,就在”a”的后面添加一个”HelloWorld”:

List List = new ArrayList();
        List.add("a");
        List.add("b");
        List.add("c");
        List.add("d");
        ListIterator listIterator = List.listIterator();
        while (listIterator.hasNext())
        {
          //这一步是向下转型
            String string = (String)listIterator.next();
    //注意⚠️⚠️:这里的迭代器要使用自己特有的迭代器,使用父类的迭代器是可以遍历集合的,但是父类的迭代器没有添加元素的方法,迭代器在迭代的过程中,是不能修改的,否则会出现并发修改异常,自己特有的迭代器有添加的方法,可以在迭代的过程中修改集合
            if (listIterator.next().equals(string)) 
            {
                listIterator.add("HelloWorld");
            }
        }

Vector的基本用法

Vector是java1.0出现的,Collection是在java1.2出现的,所以Vector中有一些方法不同的,Vector的底层实现是数组,我们主要学习一下Vector特有的遍历方法和迭代器的用法差不多

Vector vector = new Vector();
        vector.addElement("a");
        vector.addElement("b");
        vector.addElement("c");
        vector.addElement("d");
        //获得枚举,用法其实是和迭代器一样的
        Enumeration enumeration = vector.elements();
        while (enumeration.hasMoreElements()) 
        {
            System.out.println(enumeration.nextElement());
        }

LinkedList的基本用法和API
LinkedList的底层实现是链表,LinkedList的优点是增删的时候比较快,但是查找起来相对于数组是比较慢的
LinkedList中有一些特有的方法:
添加元素addLast()和addFirst()

LinkedList linkedList = new LinkedList();
        linkedList.addLast("a");//在集合的最后添加元素
        linkedList.addLast("b");
        linkedList.addFirst("c");//在集合的开始添加元素
        linkedList.addFirst("d");

获取集合中的元素 getFirst(),getLast(),get(int i)

LinkedList linkedList = new LinkedList();
        linkedList.add("a");
        linkedList.add("b");
        linkedList.add("c");
        linkedList.add("d");
        //获取头尾元素
        System.out.println(linkedList.getFirst());//获取集合最开始的元素
        System.out.println(linkedList.getLast());//获取集合最后一位的元素
        //根据下标获取元素
        System.out.println(linkedList.get(1));

ArrayList的基本用法和API
在java1.2后,ArrayList基本上取代了Vector,ArrayList的底层实现是数组
相对于LinkedList的链表实现,,数组的特点是查询的时候比较快,但是增删元素的时候相对比较慢