java笔记——List接口

329 阅读1分钟

List接口

List接口:存储有序的、可重复的数据

三个实现类:

  • ArrayList
  • LinkedList
  • Vector

三者的异同:

  • 同:三个类都是实现了List的接口,存储数据的特点相同,有序,可重复
  • 异:
    • ArrayList:作为List接口的主要实现类,线程不安全,效率高。底层使用Object【】存储
    • LinkedList:底层使用双向链表存储,对于频繁地插入、删除操作,效率更高
    • Vector:古老实现类,线程安全,效率低。底层使用Object【】存储

List接口中的常用方法:

  • 增:add
  • 删:remove(int index)/remove(Object obj)
  • 改:set
  • 查:get
  • 长度:size
  • 遍历:
    • 迭代器Iterator
    • 增强for循环
    • 普通for循环

ArrayList

额外的方法

  • list.add(1, "BB"),在指定索引出添加元素
  • addALL,添加另一个List中的所有元素
  • list.get(0),获取指定下标元素
  • list.indexOf(456),返回存在元素的下标,不存在则返回-1
  • list.remove(2),移除指定index位置的元素,并返回此元素
  • list.set(1, "CC"),设置指定index位置的元素
  • list.subList(2, 4),返回指定区间的list
 list.add(1, "BB");
        System.out.println(list);

        System.out.println("**********");

        //addALL
        List list1 = Arrays.asList(1, 2, 3);
        list.addAll(list1);
        System.out.println(list1);
        System.out.println(list.size());

        System.out.println("**********");

        //获取指定下标元素
        System.out.println(list.get(0));
        System.out.println(list.get(3));
        //System.out.println(list.get(45));

        System.out.println("**********");

        //返回存在元素的下标不存在返回-1
        int index = list.indexOf(456);
        System.out.println(index);
        index = list.indexOf(46546);
        System.out.println(index);
        //最后一次出现的元素
        System.out.println(list.lastIndexOf(456));

        System.out.println("**********");

        //移除指定index位置的元素,并返回此元素
        Object obj = list.remove(2);
        System.out.println(obj);
        System.out.println(list);

        System.out.println("**********");

        //设置指定index位置的元素
        list.set(1, "CC");
        System.out.println(list);

        System.out.println("**********");

        //返回指定区间的list
        List sublist = list.subList(2, 4);
        System.out.println(sublist);
        System.out.println(list);