list 的三个子类

List的三个子类的特点

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

Vector类概述

Vector 类可以实现可增长的对象数组 , Vector 是同步的。 

Vector类特有功能

public void addElement(E obj)将指定的组件添加到此向量的末尾,将其大小增加 1-----add取代 如果向量的大小比容量大,则增大其容量。 此方法的功能与 add(E) 方法的功能完全相同(后者是 List 接口的一部分)。
public E elementAt(int index)返回指定索引处的组件。 此方法的功能与 get(int) 方法的功能完全相同(后者是 List 接口的一部分)。—get取代
E firstElement ()返回此向量的第一个组件(位于索引 0)处的项)。
E lastElement ()返回此向量的最后一个组件。
void removeAllElements () 从此向量中移除全部组件,并将其大小设置为零
public Enumeration elements()返回此向量的组件的枚举返回的 Enumeration 对象将生成此向量中的所有项。

Vector vector = new Vector();
        //添加元素
        vector.add("aaa");
        vector.add("bbb");
        vector.add("ccc");
        vector.addElement("fff");
        vector.add("eeee");
        //System.out.println(vector);
       /* void addElement (E obj)
        将指定的组件添加到此向量的末尾,将其大小增加 1。
        E elementAt ( int index)
        返回指定索引处的组件。
        E firstElement ()
        返回此向量的第一个组件(位于索引 0)处的项)。

        E lastElement ()
        返回此向量的最后一个组件。

        void removeAllElements ()
        从此向量中移除全部组件,并将其大小设置为零*/

        Object o = vector.get(0);
        Object o1 = vector.elementAt(0);
//        System.out.println(o);
//        System.out.println(o1);
//        Object o2 = vector.firstElement();
//        Object o3 = vector.lastElement();
//        System.out.println(o2);
//        System.out.println(o3);
      //用for遍历
        for (int i = 0; i < vector.size(); i++) {
           // System.out.println(vector.get(i));
           // System.out.println(vector.elementAt(i));
        }
        //Vector 自带的迭代器 Enumeration
        Enumeration elements = vector.elements();
        while(elements.hasMoreElements()){
            Object o4 = elements.nextElement();
            if(o4.equals("aaa")){
                vector.add("ggg");//Vector 类可以实现可增长的对象数组 , Vector 是同步的。
            }
            System.out.println(o4);
        }
    }
}

LinkedList类概述

List 接口的链接列表实现 , 此实现不是同步的

LinkedList类特有功能

	public void addFirst(E e)及addLast(E e)
	public E getFirst()及getLast()
	public E removeFirst()及public E removeLast()
	 E peek ()获取但不移除此列表的头(第一个元素)
     E poll ()获取并移除此列表的头(第一个元素)
 //LinkedList 底层数据结构是链表,查询慢,增删快 ,线程 不安全,效率高
        LinkedList linkedList = new LinkedList();
       // linkedList.add(100);
       // linkedList.add(200);
        linkedList.addLast(9901);
        linkedList.addLast(9902);
        linkedList.addLast(9903);
        linkedList.addLast(9904);
       // linkedList.add(300);
       linkedList.addFirst(600); //往最前面加
        linkedList.addFirst(601); //往最前面加
        linkedList.addFirst(602); //往最前面加 linkedList.addFirst(600); //往最前面加
        System.out.println(linkedList);
        System.out.println("===========================");
        Object first = linkedList.getFirst();
        System.out.println(first);
        Object last = linkedList.getLast();
        System.out.println(last);

       // linkedList.removeFirst();
       // linkedList.removeLast();

      /*  E peek ()
        获取但不移除此列表的头(第一个元素)。*/
        Object peek = linkedList.peek();
        System.out.println(peek);

      /*  E poll ()
        获取并移除此列表的头(第一个元素)*/

        Object poll = linkedList.poll();
        Object poll2 = linkedList.poll();
        Object poll3 = linkedList.poll();
        System.out.println(linkedList);

用LinkedList模拟栈数据结构的集合

public class MyList {
    LinkedList linkedList;
    public MyList(){
        linkedList= new LinkedList();
    }//利用构造方法进行初始化

    public void addEle(Object ele) {
        //100 200
        linkedList.addFirst(ele);
    }


    public Object getEle() {
        Object pop = linkedList.pop();

        linkedList.addLast(pop);
        return pop;
    }
public class MyTest {
    public static void main(String[] args) {
       /* A:
        案例演示:
        需求:请用LinkedList模拟栈数据结构的集合,并测试*/
       //栈的数据结构是先进后出,后进先出
      /*  ArrayList list = new ArrayList();
        list.add(100);

        list.add(400);

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        */

        MyList myList = new MyList();
        myList.addEle(100);
        myList.addEle(200);
        myList.addEle(300);

        Object ele = myList.getEle();
        System.out.println(ele);
        ele = myList.getEle();
        System.out.println(ele);

        ele = myList.getEle();
        System.out.println(ele);
    }
}
发布了46 篇原创文章 · 获赞 1 · 访问量 1013

猜你喜欢

转载自blog.csdn.net/qq_42022411/article/details/102912187