ArrayList,Vector,LinkedList概述及特有的功能

List的三个子实现类:ArrayList,Vector,LinkedList

一:ArrayList:

                    底层数据结构是数组,查询快,增删慢,线程不安全,效率高 可以存储重复元素

ArrayList特有的功能:

               int indexOf (Object o)返回此列表中指定元素的第一个出现的索引,或 - 如果此列表不包含元素,或 - 1。
               void sort (Comparator < ? super E > c)分类列表使用提供的 Comparator比较元素。
              List<E> subList ( int fromIndex, int toIndex)返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
               Object[] toArray () 返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。

ArrayList特有的功能的举例:

package org.westos.Demo;
// int indexOf (Object o)返回此列表中指定元素的第一个出现的索引,或 - 如果此列表不包含元素,或 - 1。
// void sort (Comparator < ? super E > c)分类列表使用提供的 Comparator比较元素。
//  List<E> subList ( int fromIndex, int toIndex)返回一个视图之间的指定 fromIndex,包容,和 toIndex这份名单的部分,独家。
// Object[] toArray () 返回一个数组,包含在这个列表中的所有元素在适当的顺序(从第一个到最后一个元素)。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Demo {
    public static void main(String[] args) {

        ArrayList<Integer> list = new ArrayList<>();
        list.add(10);
        list.add(10);
        list.add(30);
        list.add(10);
        list.add(20);
        list.add(50);
        list.add(40);
        // int indexOf (Object o):查找该元素第一次在集合中出现的索引
        int i = list.indexOf(10);
        System.out.println(i);
        // void sort (Comparator < ? super E > c)分类列表使用提供的 Comparator比较元素。
        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer a, Integer b) {

                return -(a - b);
            }
        });

        System.out.println(list);

        ////  List<E> subList ( int fromIndex, int toIndex):截取集合中的元素
        //  List<Integer> integers = list.subList(0, 4);//含头不含尾
        //  System.out.println(integers);

        Object[] obj = list.toArray();//把一个集合转成数组
        obj[0] = 500;
        System.out.println(obj[0]);

        int[] arrs = {10, 20, 30};
        List<int[]> ints = Arrays.asList(arrs);//把数组转成集合
        System.out.println(ints);

        //通过asList方法转换过来的集合,此集合不能再添加或者删除元素
        List<Integer> integers = Arrays.asList(10, 60, 80, 90, 100);
        System.out.println(integers);
        //integers.add(100);
        //  integers.remove(0);

        for (int j = 0; j < integers.size(); j++) {

            System.out.println(integers.get(j));
        }


    }
}

二:Vector:

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

       Vector特有的功能:

                        E elementAt(int index):返回指定索引处的组件。
                        Enumeration<E> elements(): 返回此向量的组件的枚举。(迭代器)
                        E firstElement(): 返回第一个组件(在指数 0项目)这个载体。
                        E lastElement():返回向量的最后一个组件。

Vector特有的功能的举例:

package org.westos.Demo;

import java.util.Enumeration;
import java.util.Vector;

//E elementAt(int index):返回指定索引处的组件。
//Enumeration<E> elements():返回此向量的组件的枚举。  (迭代器)
//E firstElement():返回第一个组件(在指数 0项目)这个载体。
//E lastElement(): 返回向量的最后一个组件。
//测试类
public class Demo {
    //主方法
    public static void main(String[] args) {
        Vector<Integer> integers = new Vector<>();//创建一个Vector集合
        integers.add(10);
        integers.add(20);
        integers.add(30);
        integers.add(40);
        integers.add(50);

        //E elementAt(int index):返回指定索引处的组件。
        Integer integer = integers.elementAt(integers.size() - 1);
        System.out.println(integer);

        //Vector 集合特有的遍历方式
        Enumeration<Integer> elements = integers.elements();
        while (elements.hasMoreElements()) {

            System.out.println(elements.nextElement());
        }
        //E firstElement():返回第一个组件(在指数 0项目)这个载体。
        Integer integer1 = integers.firstElement();
        //E lastElement(): 返回向量的最后一个组件。
        Integer integer2 = integers.lastElement();
        System.out.println(integer1);
        System.out.println(integer2);
    }


}

LinkedList:

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

LinkedList特有的功能:

                   public void addFirst (E e): 将指定元素插入此列表的开头。

                   public void addLast(E e): 将指定元素添加到此列表的结尾
                   public E getFirst () :返回此列表的第一个元素。

                   public E getLast(): 返回此列表的最后一个元素。
                   public E removeFirst () :移除并返回此列表的第一个元素。

                   public E removeLast():移除并返回此列表的最后一个元素。

LinkedList特有的功能的举例:

package org.westos.Demo;
//public void addFirst (E e): 将指定元素插入此列表的开头。
//
//public void addLast(E e): 将指定元素添加到此列表的结尾
//public E getFirst () :返回此列表的第一个元素。
//
//public E getLast(): 返回此列表的最后一个元素。
//public E removeFirst () :移除并返回此列表的第一个元素。
//
//public E removeLast():移除并返回此列表的最后一个元素。


import java.util.LinkedList;

public class Demo {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("abc");
        list.add("ccc");
        //public void addFirst (E e): 将指定元素插入此列表的开头。
        list.addFirst("AAA");
        //public void addLast(E e): 将指定元素添加到此列表的结尾
        list.addLast("BBB");

        System.out.println(list);
        //public E getFirst () :返回此列表的第一个元素。
        System.out.println(list.getFirst());
        //public E getLast(): 返回此列表的最后一个元素。
        System.out.println(list.getLast());
        //public E removeFirst () :移除并返回此列表的第一个元素。
        System.out.println(list.removeFirst());
        //public E removeLast():移除并返回此列表的最后一个元素。
        System.out.println(list.removeLast());
        System.out.println(list);


    }
}

           

猜你喜欢

转载自blog.csdn.net/qq_41942241/article/details/81368429