List集合(ArrayList、LinkedList、Vector)

本文详细介绍了Java中List接口及其常见实现类ArrayList、LinkedList和Vector的特点和使用方法。ArrayList基于数组,查询快,增删慢;LinkedList采用链表结构,查询慢,增删快;Vector线程安全,效率较低。List接口的特点包括元素有序可重复,提供了如add、get、remove等操作元素的方法。
摘要由CSDN通过智能技术生成

目录

1、List集合 

1.1、什么是List集合?

 1.1、List集合的特点

1.2、List集合常用方法

 1.3、代码演示

 2、ArrayList集合

2.1、ArrayList集合常用方法

 2.2、代码演示

3、LinkedList集合

3.1、LinkedList的特点

 3.2、LinkedList常用方法

3.3、代码演示

4、Vector集合

4.1、Vector集合特点

4.2、代码演示 

5、List集合子类特点总结


 

1、List集合 

1.1、什么是List集合?

java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。

 1.1、List集合的特点

1、它是一个元素存取有序的集合。

2、它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。

3、集合中可以有重复的元素。

1.2、List集合常用方法

List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法。

方法名说明
public void add(int index, E element)将指定的元素,添加到该集合中的指定位置上。
public E get(int index)返回集合中指定位置的元素。
public E remove(int index)移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element)用指定元素替换集合中指定位置的元素,返回值的更新前的元素。

 1.3、代码演示

public class ListDemo {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");
        System.out.println(list);
        //删除指定索引元素或者删除指定元素
        list.remove("world");
        list.remove(0);
        System.out.println(list);
        //获取集合的元素个数
        int size = list.size();
        System.out.println(size);
        //查看集合中是否包含指定元素
        boolean hello = list.contains("hello");
        System.out.println(hello);

        //list集合获取指定索引的元素
        String s = list.get(0);
        System.out.println(s);
        System.out.println("-------------------");
        //list集合遍历
        Iterator<String> iterator = list.iterator();
        while(iterator.hasNext()){
            String next = iterator.next();
            System.out.println(next);
        }
        System.out.println("-------------------");
        //普通for遍历
        for (int i = 0; i <list.size() ; i++) {
            String s1 = list.get(i);
            System.out.println(s1);
        }
        System.out.println("-------------------");
        //增强for
        //iter
        for (String s1 : list) {
            System.out.println(s1);
        }
    }
}

 2、ArrayList集合

2.1、ArrayList集合特点

底层数据结构是数组,查询快,增删慢 线程不安全,效率高。

2.1、ArrayList集合常用方法

方法名说明
public void add(int index, E element)将指定的元素,添加到该集合中的指定位置上。
public E get(int index)返回集合中指定位置的元素。
public E remove(int index)移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element)用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
public boolean add(E e)将指定的元素添加到此列表的尾部。

 2.2、代码演示

public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> arrayList=new ArrayList<>();
        //添加元素
        arrayList.add("hello");
        arrayList.add("world");
        //在指定索引添加元素替换原有的元素
        arrayList.add(0,"rose");
        //指定索引,在此索引处进行设置值
        arrayList.set(1,"java");
        System.out.println(arrayList);
        //获取指定索引的元素
        String s = arrayList.get(1);
        System.out.println(s);
        //删除指定索引的元素
        String remove = arrayList.remove(1);
        System.out.println(remove);
        System.out.println(arrayList);
    }
}

3、LinkedList集合

3.1、LinkedList的特点

1、底层数据结构是链表,查询慢,增删快
2、线程不安全,效率高

 3.2、LinkedList常用方法

方法名说明
public void addFirst(E e)将指定元素插入此列表的开头。
public void addLast(E e)将指定元素添加到此列表的结尾。
public E getFirst()返回此列表的第一个元素。
public E getLast()返回此列表的最后一个元素。
public E removeFirst()移除并返回此列表的第一个元素。
public E removeLast()移除并返回此列表的最后一个元素。
public E pop()从此列表所表示的堆栈处弹出一个元素。
public void push(E e)将元素推入此列表所表示的堆栈。
public boolean isEmpty()如果列表不包含元素,则返回true。

LinkedList是List的子类,List中的方法LinkedList都是可以使用,我们只需要了解LinkedList的特有方法即可。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。

3.3、代码演示

public class LinkedListDemo {
    public static void main(String[] args) {
        LinkedList<String> linkedList=new LinkedList<>();
        //添加元素
        linkedList.add("hello");
        linkedList.add("world");
        linkedList.add("java");
        //添加头部元素
        linkedList.addFirst("head");
        //添加尾部元素
        linkedList.addLast("last");
        System.out.println(linkedList);
        System.out.println("-------------------");
        //获取头部元素
        String first = linkedList.getFirst();
        System.out.println(first);
        //获取尾部元素
        String last = linkedList.getLast();
        System.out.println(last);
        System.out.println("-------------------");
        //删除头部元素并返回该元素值
        String s = linkedList.removeFirst();
        //删除尾部元素并返回该元素值
        String s1 = linkedList.removeLast();
        System.out.println(s);
        System.out.println(s1);
        System.out.println(linkedList);
        System.out.println("-------------------");
        //循环集合 如果不为空就弹出一个元素
        while(!linkedList.isEmpty()){
            linkedList.pop();
        }
        System.out.println(linkedList);
    }
}

4、Vector集合

4.1、Vector集合特点

1、底层数据结构是数组,查询快,增删慢。
2、线程安全,效率低。

4.2、代码演示 

public class VectorDemo {
    public static void main(String[] args) {
        Vector<String> vector=new Vector<>();
        vector.addElement("hello");
        vector.addElement("world");
        vector.addElement("java");

        //集合遍历
        for (int i = 0; i <vector.size() ; i++) {
            String s = vector.elementAt(i);
            System.out.println(s);
        }
        System.out.println("-------------------");
        //vector集合迭代器遍历
        Enumeration<String> elements = vector.elements();
        while(elements.hasMoreElements()){
            String s = elements.nextElement();
            System.out.println(s);
        }
        System.out.println("--------------------");
        //增强for遍历
        for (String s : vector) {
            System.out.println(s);
        }
    }
}

5、List集合子类特点总结

    1、ArrayList:
               底层数据结构是数组,查询快,增删慢。
               线程不安全,效率高。
    2、LinkedList:
               底层数据结构是链表,查询慢,增删快。
               线程不安全,效率高。
    3、Vector:
               底层数据结构是数组,查询快,增删慢。
               线程安全,效率低。
    4、List集合特点:有序可重复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值