集合框架-List的子類

ZHOU_VIP發表於2017-04-22

1:List的子類(掌握)

(1)List的子類特點

ArrayList:

    底層資料結構是陣列,查詢快,增刪慢

    執行緒不安全,效率高

Vector:

    底層資料結構是陣列,查詢快,增刪慢

    執行緒安全,效率低

LinkedList:

    底層資料結構是連結串列,查詢慢,增刪快

    執行緒不安全,效率高

(2)ArrayList

A:沒有特有功能需要學習

B:案例

    a:ArrayList儲存字串並遍歷

    b:ArrayList儲存自定義物件並遍歷


package cn.itcast_01;

import java.util.ArrayList;
import java.util.Iterator;

/*
 * List的子類特點:
 * 		ArrayList:
 * 			底層資料結構是陣列,查詢快,增刪慢
 * 			執行緒不安全,效率高
 * 		Vector:
 * 			底層資料結構是陣列,查詢快,增刪慢
 * 			執行緒安全,效率低
 * 		LinkedList:
 * 			底層資料結構是連結串列,查詢慢,增刪快
 * 			執行緒不安全,效率高
 * 
 * 案例:
 * 		使用List的任何子類儲存字串或者儲存自定義物件並遍歷。
 * 
 * ArrayList的使用。	
 * 		儲存字串並遍歷
 */
public class ArrayListDemo {
	public static void main(String[] args) {
		// 建立集合物件
		ArrayList array = new ArrayList();

		// 建立元素物件,並新增元素
		array.add("hello");
		array.add("world");
		array.add("java");

		// 遍歷
		Iterator it = array.iterator();
		while (it.hasNext()) {
			String s = (String) it.next();
			System.out.println(s);
		}

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

		for (int x = 0; x < array.size(); x++) {
			String s = (String) array.get(x);
			System.out.println(s);
		}
	}
}


package cn.itcast_01;

import java.util.ArrayList;
import java.util.Iterator;

/*
 * ArrayList儲存自定義物件並遍歷
 */
public class ArrayListDemo2 {
	public static void main(String[] args) {
		// 建立集合物件
		ArrayList array = new ArrayList();

		// 建立學生物件
		Student s1 = new Student("武松", 30);
		Student s2 = new Student("魯智深", 40);
		Student s3 = new Student("林沖", 36);
		Student s4 = new Student("楊志", 38);

		// 新增元素
		array.add(s1);
		array.add(s2);
		array.add(s3);
		array.add(s4);

		// 遍歷
		Iterator it = array.iterator();
		while (it.hasNext()) {
			Student s = (Student) it.next();
			System.out.println(s.getName() + "---" + s.getAge());
		}

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

		for (int x = 0; x < array.size(); x++) {
			// ClassCastException 注意,千萬要搞清楚型別
			// String s = (String) array.get(x);
			// System.out.println(s);

			Student s = (Student) array.get(x);
			System.out.println(s.getName() + "---" + s.getAge());
		}
	}
}


package cn.itcast_01;

public class Student {
	private String name;
	private int age;

	public Student() {
		super();
	}

	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

(3)Vector

    A:有特有功能

        a:新增

            public void addElement(E obj)        --    add()

        b:獲取

            public E elementAt(int index)        --    get()

            public Enumeration<E> elements()    --  iterator()

    B:案例

        a:Vector儲存字串並遍歷

        b:Vector儲存自定義物件並遍歷


package cn.itcast_02;

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

/*
 * Vector的特有功能:
 * 1:新增功能
 * 		public void addElement(Object obj)	--add()
 * 2:獲取功能
 * 		public Object elementAt(int index)	--get()
 * 		public Enumeration elements()		--Iterator iterator()
 * 		boolean hasMoreElements()		    hasNext()
 * 		Object nextElement()			    next()
 * 
 * JDK升級的原因:
 * 		A:安全
 * 		B:效率
 * 		C:簡化書寫
 */
public class VectorDemo {
	public static void main(String[] args) {
		// 建立集合物件
		Vector v = new Vector();

		// 新增功能
		v.addElement("hello");
		v.addElement("world");
		v.addElement("java");

		// 遍歷
		for (int x = 0; x < v.size(); x++) {
			String s = (String) v.elementAt(x);
			System.out.println(s);
		}

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

		Enumeration en = v.elements(); // 返回的是實現類的物件
		while (en.hasMoreElements()) {
			String s = (String) en.nextElement();
			System.out.println(s);
		}
	}
}

(4)LinkedList

    A:有特有功能   

        a:新增

            addFirst()

            addLast()

        b:刪除

            removeFirst()

            removeLast()

        c:獲取

            getFirst()

            getLast()

    B:案例

        a:LinkedList儲存字串並遍歷

        b:LinkedList儲存自定義物件並遍歷


package cn.itcast_03;

import java.util.LinkedList;

/*
 * LinkedList的特有功能:
 * 		A:新增功能
 * 			public void addFirst(Object e)
 * 			public void addLast(Object e)
 * 		B:獲取功能
 * 			public Object getFirst()
 * 			public Obejct getLast()
 * 		C:刪除功能
 * 			public Object removeFirst()
 * 			public Object removeLast()
 */
public class LinkedListDemo {
	public static void main(String[] args) {
		// 建立集合物件
		LinkedList link = new LinkedList();

		// 新增元素
		link.add("hello");
		link.add("world");
		link.add("java");

		// public void addFirst(Object e)
		// link.addFirst("javaee");
		// public void addLast(Object e)
		// link.addLast("android");意義不大,新增的本來就在後面

		// public Object getFirst()
		// System.out.println("getFirst:" + link.getFirst());
		// public Obejct getLast()
		// System.out.println("getLast:" + link.getLast());

		// public Object removeFirst()
		System.out.println("removeFirst:" + link.removeFirst());
		// public Object removeLast()
		System.out.println("removeLast:" + link.removeLast());

		// 輸出物件名
		System.out.println("link:" + link);
	}
}



相關文章