1. 程式人生 > >(Java)集合框架(一)Collection介面方法、Iterator迭代器、增強for迴圈

(Java)集合框架(一)Collection介面方法、Iterator迭代器、增強for迴圈

【Collection介面】 

import java.util.ArrayList;
import java.util.Collection;

/*
 * Collection介面中的方法    是集合中所有實現類必須擁有的方法
 * 程式演示,使用Collection介面的實現類   ArrayList
 *        ArrayList   implements    List
 *        List        extends       Collection
 *        方法的執行都是實現類的重寫方法
 *   
 * 
 */

/*
 * Java中三種陣列長度表現形式:
 *     陣列.length       屬性             返回值為   int
 *     字串.length()    方法            返回值為   int
 *     集合.size()       方法             返回值為   int
 *     
 * 
 */

public class CollectionDemo1 {
	public static void main(String[] args) {
		fuction_4();
		
	}
	//1.Collection介面方法,void clear()  清空集合中的所有元素
	public static void fuction_1(){
		// 介面多型的方式呼叫方法
		Collection<String > coll = new ArrayList<String>();
		coll.add("123");
		coll.add("acd");
		coll.add("1jk");
		
		System.out.println(coll);  //  [123, acd, 1jk]
		
		coll.clear();
		System.out.println(coll);  //  []  集合容器依然存在
	}
	
	//2.Collection介面方法,boolean contains(object o)  引數是object型別
	//                   判斷物件是否存在集合中,存在返回true
	public static void fuction_2(){
		Collection<String> coll = new ArrayList<String>();
		coll.add("asd");
		coll.add("pandas");
		coll.add("python");
		
		boolean b = coll.contains("python");
		System.out.println(b);                // true
		
	}
	
	//3.Collection介面方法,Object[] toArray() 集合中的元素    轉換成一個數組中的元素,集合轉陣列  
	//                  返回的是一個儲存物件的陣列,儲存型別是object
	public static void fuction_3(){
		Collection<String> coll = new ArrayList<String>();
		coll.add("asd");
		coll.add("pandas");
		coll.add("python");
		
		Object[] objs = coll.toArray();
		for(int i=0;i<objs.length;i++){
			System.out.println(objs[i]);     // asd   pandas  python
		}
	}
	
	//4.Collection介面方法,boolean remove(Object o)  移除集合中指定的元素(第一次出現的),刪除成功就返回true
	public static void fuction_4(){
		Collection<String> coll = new ArrayList<String>();
		coll.add("python");
		coll.add("asd");
		coll.add("pandas");
		coll.add("python");
		System.out.println(coll);
		
		boolean b = coll.remove("python");
		System.out.println(b);
		System.out.println(coll);
	}

}

【Iterator迭代器】


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

/*  集合中的迭代器:  獲取集合中元素的方式
 *  介面Iterator兩個抽象方法:
 *     boolean hasNext() 判斷集合中還有沒有可以被取出的元素,若有返回true
 *     next()  取出集合中的下一個元素
 *    
 *  Iterator介面,實現類        collection extends Iterator       List etends Collection    ArrayList  implements List
 *  Collection介面定義方法   Iterator  iterator()
 *  ArrayList重寫抽象方法iterator() ,返回了Iterator介面 實 現類的物件
 *  使用ArrayList集合 的物件  Iterator it =  array.iterator()  執行的結果就是Iterator介面的實現類物件
 *         it 是介面的實現類物件,呼叫方法hasNext()和方法Next(),進行集合元素迭代
 *  
 * 
 */
public class IteratorDemo1 {
	public static void main(String[] args) {
		Collection<String> coll = new ArrayList<String>();
		coll.add("asd");
		coll.add("sdx");
		coll.add("ghj");
		
		// 迭代器獲取
		Iterator<String> it = coll.iterator();              // 多型
		while(it.hasNext()){
			System.out.println(it.next());                 // asd  sdx  ghj
		}
		
		function_1();
		
	}
	
	/*
	 * 集合可以儲存任意型別的物件
	 */
	public static void function_1(){
		// 集合中可以不指定儲存的資料型別
		Collection coll = new ArrayList();
		coll.add("123");
		coll.add("abcqq");
		
		// 迭代器獲取
		Iterator it = coll.iterator();
		
		while(it.hasNext()){
			// it.next() 獲取的是什麼樣的資料型別?  是Object型別
			Object obj = it.next();
			System.out.println();
			
			String s = (String) obj;
			System.out.println(s.length());
		}
		
		
	}

}

【增強for迴圈】 


import java.util.ArrayList;

/*
 * JDK1.5新特性,增強for迴圈      新介面 java.lang.Iterable
 *            Collection繼承了Iterable      
 * 作用:實現增強for迴圈
 *     格式:           
 *     for(資料型別  變數名:陣列或集合){
 *     }
 *            
 * 好處:程式碼少,方便對容器進行遍歷
 * 弊端:沒有索引,不能操作容器中的元素
 * 
 */
public class ForEachDemo1 {
	public static void main(String[] args) {
		function_1();
		function_2();
		function_3();
	}
	
	//1.增強for迴圈  遍歷整型陣列
	public static void function_1(){
		int[] arr = {1,23,4};
		for(int i:arr){
			System.out.println(i);           // 1 23 4 
			System.out.println(i+1);         // 2 24 5 
		}
	}
	
	//2.增強for迴圈  遍歷字串陣列
	public static void function_2(){
		String[] str = {"123","asd","fhhdd"};
		for(String s:str){
			System.out.println(s.length());  // 3 3 5
		}
	}
	
	//3.增強for迴圈  遍歷集合,儲存Person型別
	public static void function_3(){
		ArrayList<Person> per = new ArrayList<Person>();
		per.add(new Person("張三","23"));
		per.add(new Person("張使","13"));
		per.add(new Person("李三","33"));
		
		for(Person p: per){
			System.out.println(p);          // Person [name=張三, Id=23]...
		}
	}

}