1. 程式人生 > >集合Collection和List(一)

集合Collection和List(一)

一.陣列和集合的區別


二.集合的結構


三.


四.集合的遍歷

Collection c=new ArrrayList();//建立集合
//新增元素
c.add("helleo");
c.add("haokan");
Object[] obj=c.toArray();//集合轉變成陣列
//遍歷
for(int i=0; i<obj.length;i++){
 String s=(String) obj[i];//因為集合中沒有Length所以實現向下轉型
System.out.prinln(s.length|+"__"+s)

}

五.迭代器的使用

Collection c=new ArrayList()//建立集合對像

c.add("Hello");

c.add("bianli")//新增集合元素

Itreator it=c.itrerator();//通過集合獲取迭代物件

while(it.hasNext()){ //判斷下一個是否存在元素

String s=(String)it.next();//獲取元素並且移到下一個位置

System.out.prinln(s.length)

}

對以上問題的總結


六.Collection 和 Collections的區別。 
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。

Collection是個java.util下的介面,它是各種集合結構的父介面。

List的問題

1.List是有序可重複的

List list=new ArrayList();//建立物件
//新增元素
list.add("hello")
list.add("world")
list.add("java")
Iterator it=list.itrator();//通過集合物件獲取迭代器物件
while(it.hasNext()){//判斷是否還有元素
 String s=(Stirng) it.next();//獲取元素並移到下一個位置
 System.out.println(s);
}

List新增物件

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

List的特有功能


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");//沒有問題
		// IndexOutOfBoundsException下標越界
		// list.add(11, "javaee");//有問題
		// list.add(3, "javaee"); //沒有問題
		// list.add(4, "javaee"); //有問題

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

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

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

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

List的特有遍歷


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");
		// 如果元素過多,數起來就比較麻煩,所以我們使用集合的一個長度功能: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_04;


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


/*
 * 列表迭代器:
 * ListIterator listIterator():List集合特有的迭代器
 * 該迭代器繼承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法。
 * 
 * 特有功能:
 * Object previous():獲取上一個元素
 * boolean hasPrevious():判斷是否有元素
 * 
 * 注意:ListIterator可以實現逆向遍歷,但是必須先正向遍歷,才能逆向遍歷,所以一般無意義,不使用。
 */
public class ListIteratorDemo {
public static void main(String[] args) {
// 建立List集合物件
List list = new ArrayList();
list.add("hello");
list.add("world");
list.add("java");
// ListIterator listIterator()
ListIterator lit = list.listIterator(); // 子類物件
while (lit.hasNext()) {
String s = (String) lit.next();
System.out.println(s);
}
 System.out.println("-----------------");



while (lit.hasPrevious()) {
String s = (String) lit.previous();
System.out.println(s);
}
System.out.println("-----------------");


// 迭代器
Iterator it = list.iterator();
while (it.hasNext()) {
String s = (String) it.next();
System.out.println(s);
}
System.out.println("-----------------");


}
}
public class ListIteratorDemo2 {
	public static void main(String[] args) {
		// 建立List集合物件
		List list = new ArrayList();
		// 新增元素
		list.add("hello");
		list.add("world");
		list.add("java");

		// 迭代器遍歷
		// Iterator it = list.iterator();
		// while (it.hasNext()) {
		// String s = (String) it.next();
		// if ("world".equals(s)) {
		// list.add("javaee");
		// }
		// }

		// 方式1:迭代器迭代元素,迭代器修改元素
		// 而Iterator迭代器卻沒有新增功能,所以我們使用其子介面ListIterator
		// ListIterator lit = list.listIterator();
		// while (lit.hasNext()) {
		// String s = (String) lit.next();
		// if ("world".equals(s)) {
		// lit.add("javaee");
		// }
		// }

		// 方式2:集合遍歷元素,集合修改元素(普通for)
		for (int x = 0; x < list.size(); x++) {
			String s = (String) list.get(x);
			if ("world".equals(s)) {
				list.add("javaee");
			}
		}

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

棧和佇列
陣列和連結串列