集合框架-List集合

ZHOU_VIP發表於2017-04-20

3.集合(List)(掌握)

(1)List是Collection的子介面

特點:有序(儲存順序和取出順序一致),可重複。


package cn.itcast_01;

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

/*
 * 需求:List集合儲存字串並遍歷。
 *  List集合的特點:有序(儲存和取出的元素一致),可重複的
 */
public class ListDemo {
	public static void main(String[] args) {
		// 建立集合物件
		List list = new ArrayList();

		// 建立字串並新增字串
		list.add("hello");
		list.add("world");
		list.add("java");
		list.add("javaee");
		list.add("java");
		
		// 遍歷集合
		Iterator it = list.iterator();
		while (it.hasNext()) {
			String s = (String) it.next();
			System.out.println(s);
		}
	}
}


package cn.itcast_02;

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

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

		// 建立學生物件
		Student s1 = new Student("白骨精", 30);
		Student s2 = new Student("蜘蛛精", 40);
		Student s3 = new Student("觀音姐姐", 22);

		// 把學生物件新增到集合物件中
		list.add(s1);
		list.add(s2);
		list.add(s3);

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


package cn.itcast_02;

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;
	}

	// 成員方法
	// getXxx()/setXxx()
	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;
	}
}

(2)List的特有功能:(自己補齊)

        A:新增功能

        B:刪除功能

        C:獲取功能

        D:迭代器功能

        E:修改功能


package cn.itcast_03;

import java.util.ArrayList;
import java.util.List;

/*
 * List集合的特有功能:
 * A:新增功能
 *          void add(int index,Object element):在指定位置新增元素。
            將當前處於該位置的元素(如果有的話)和所有後續元素向右移動(在其索引中加 1)。
 * B:獲取功能
 *         Object get(int index):獲取指定位置的元素
 * C:列表迭代器
 *         ListIterator listIterator():List集合特有的迭代器
 * D:刪除功能
 *         Object remove(int index):根據索引刪除元素,返回被刪除的元素
 * E:修改功能
 *         Object set(int index,Object element):根據索引修改元素,返回被修飾的元素
 */
public class ListDemo {
    public static void main(String[] args) {
        // 建立集合物件
        List list = new ArrayList();

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

        // void add(int index,Object element):在指定位置新增元素
        // list.add(1, "android");//沒有問題 hello android world java
        // IndexOutOfBoundsException 索引越界
        // list.add(11, "javaee");//有問題
        // list.add(3, "javaee"); //沒有問題
        // list.add(4, "javaee"); //有問題

        // Object get(int index):獲取指定位置的元素
        // System.out.println("get:" + list.get(1)); hello world java 呼叫list.get(1)得到world
        // IndexOutOfBoundsException
        // System.out.println("get:" + list.get(11));

        // Object remove(int index):根據索引刪除元素,返回被刪除的元素
        // System.out.println("remove:" + list.remove(1));hello world java 把world幹掉了
        // IndexOutOfBoundsException
        // System.out.println("remove:" + list.remove(11));

        // Object set(int index,Object element):根據索引修改元素,返回被修飾的元素
        System.out.println("set:" + list.set(1, "javaee"));hello javaee java

        System.out.println("list:" + list);
    }
}

(3)List集合的特有遍歷功能

    A:由size()和get()結合。

    B:程式碼演示


package cn.itcast_03;

import java.util.ArrayList;
import java.util.List;

/*
 * List集合的特有遍歷功能:
 * 		size()和get()方法結合使用
 */
public class ListDemo2 {
	public static void main(String[] args) {
		// 建立集合物件
		List list = new ArrayList();

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

		// Object get(int index):獲取指定位置的元素
		// System.out.println(list.get(0)); hello
		// System.out.println(list.get(1)); world
		// System.out.println(list.get(2)); java
		// IndexOutOfBoundsException
		// System.out.println(list.get(3));

		// 用迴圈改進
		// for (int x = 0; x < 3; x++) {
		//      System.out.println(list.get(x));
		// }
		// 如果元素過多,數起來就比較麻煩,所以我們使用集合的一個長度功能:size()
		// 最終的遍歷方式就是:size()和get()
		for (int x = 0; x < list.size(); x++) {
			// System.out.println(list.get(x));

			String s = (String) list.get(x);
			System.out.println(s);
		}
	}
}


package cn.itcast_03;

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

/*
 * 儲存自定義物件並遍歷,用普通for迴圈。(size()和get()結合)
 */
public class ListDemo3 {
	public static void main(String[] args) {
		// 建立集合物件
		List list = new ArrayList();

		// 建立學生物件
		Student s1 = new Student("林黛玉", 18);
		Student s2 = new Student("劉姥姥", 88);
		Student s3 = new Student("王熙鳳", 38);

		// 把學生新增到集合中
		list.add(s1);
		list.add(s2);
		list.add(s3);

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

		// 普通for迴圈
		for (int x = 0; x < list.size(); x++) {
			Student s = (Student) list.get(x);
			System.out.println(s.getName() + "---" + s.getAge());
		}
	}
}


package cn.itcast_03;

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;
	}

	// 成員方法
	// getXxx()/setXxx()
	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;
	}
}



相關文章