(Java)集合框架(一)Collection介面方法、Iterator迭代器、增強for迴圈
阿新 • • 發佈:2018-12-20
【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]... } } }