標籤:物件導向 編輯器 對象 java
package cn.itcast_01;import java.util.ArrayList;import java.util.Collection;/* * 集合的由來: * 我們學習的是物件導向語言,而物件導向語言對事物的描述是通過對象體現的,為了方便對多個對象進行操作,我們就必須把這多個對象進行儲存。 * 而要想儲存多個對象,就不能是一個基本的變數,而應該是一個容器類型的變數,在我們目前所學過的知識裡面,有哪些是容器類型的呢? * 數組和StringBuffer。但是呢?StringBuffer的結果是一個字串,不一定滿足我們的要求,所以我們只能選擇數組,這就是對象數組。 * 而對象數組又不能適應變化的需求,因為數組的長度是固定的,這個時候,為了適應變化的需求,Java就提供了集合類供我們使用。 * * 數組和集合的區別? * A:長度區別 * 數組的長度固定 * 集合長度可變 * B:內容不同 * 數組儲存的是同一種類型的元素 * 而集合可以儲存不同類型的元素 * C:元素的資料類型問題 * 數組可以儲存基礎資料型別 (Elementary Data Type),也可以儲存引用資料類型 * 集合只能儲存參考型別 * * 剛說過集合是儲存多個元的,但是呢,儲存多個元素我們也是有不同需求的:比如說,我要這多個元素中不能有相同的元素, * 再比如說,我要這多個元素按照某種規則排序一下。針對不同的需求,Java就提供了不同的集合類,這樣呢,Java就提供了很多個集合類。 * 這多個集合類的資料結構不同,結構不同不重要的,重要的是你要能夠儲存東西,並且還要能夠使用這些東西,比如說判斷,擷取等。 * 既然這樣,那麼,這多個集合類是有共性的內容的,我們把這些集合類的共性內容不斷的向上提取,最終就能形成集合的繼承體繫結構。 * * 資料結構:資料的儲存方式。 * * Collection:是集合的頂層介面,它的子體系有重複的,有唯一的,有有序的,有無序的。(後面會慢慢的講解) * * Collection的功能概述: * 1:添加功能 * boolean add(Object obj):添加一個元素 * boolean addAll(Collection c):添加一個集合的元素 * 2:刪除功能 * void clear():移除所有元素 * boolean remove(Object o):移除一個元素 * boolean removeAll(Collection c):移除一個集合的元素(是一個還是所有) * 3:判斷功能 * boolean contains(Object o):判斷集合中是否包含指定的元素 * boolean containsAll(Collection c):判斷集合中是否包含指定的集合元素(是一個還是所有) * boolean isEmpty():判斷集合是否為空白 * 4:擷取功能 * Iterator<E> iterator()(重點) * 5:長度功能 * int size():元素的個數 * 面試題:數組有沒有length()方法呢?字串有沒有length()方法呢?集合有沒有length()方法呢? * 6:交集功能 * boolean retainAll(Collection c):兩個集合都有的元素?思考元素去哪了,返回的boolean又是什麼意思呢? * 7:把集合轉換為數組 * Object[] toArray() */public class CollectionDemo { public static void main(String[] args) { // 測試不帶All的方法 // 建立集合對象 // Collection c = new Collection(); //錯誤,因為介面不能執行個體化 Collection c = new ArrayList(); // boolean add(Object obj):添加一個元素 // System.out.println("add:"+c.add("hello")); c.add("hello"); c.add("world"); c.add("java"); // void clear():移除所有元素 // c.clear(); // boolean remove(Object o):移除一個元素 // System.out.println("remove:" + c.remove("hello")); // System.out.println("remove:" + c.remove("javaee")); // boolean contains(Object o):判斷集合中是否包含指定的元素 // System.out.println("contains:"+c.contains("hello")); // System.out.println("contains:"+c.contains("android")); // boolean isEmpty():判斷集合是否為空白 // System.out.println("isEmpty:"+c.isEmpty()); //int size():元素的個數 System.out.println("size:"+c.size()); System.out.println("c:" + c); }}
package cn.itcast_01;import java.util.ArrayList;import java.util.Collection;/* * boolean addAll(Collection c):添加一個集合的元素 * boolean removeAll(Collection c):移除一個集合的元素(是一個還是所有) * boolean containsAll(Collection c):判斷集合中是否包含指定的集合元素(是一個還是所有) * boolean retainAll(Collection c):兩個集合都有的元素?思考元素去哪了,返回的boolean又是什麼意思呢? */public class CollectionDemo2 { public static void main(String[] args) { // 建立集合1 Collection c1 = new ArrayList(); c1.add("abc1"); c1.add("abc2"); c1.add("abc3"); c1.add("abc4"); // 建立集合2 Collection c2 = new ArrayList();// c2.add("abc1");// c2.add("abc2");// c2.add("abc3");// c2.add("abc4"); c2.add("abc5"); c2.add("abc6"); c2.add("abc7"); // boolean addAll(Collection c):添加一個集合的元素 // System.out.println("addAll:" + c1.addAll(c2)); //boolean removeAll(Collection c):移除一個集合的元素(是一個還是所有) //只要有一個元素被移除了,就返回true。 //System.out.println("removeAll:"+c1.removeAll(c2)); //boolean containsAll(Collection c):判斷集合中是否包含指定的集合元素(是一個還是所有) //只有包含所有的元素,才叫包含 // System.out.println("containsAll:"+c1.containsAll(c2)); //boolean retainAll(Collection c):兩個集合都有的元素?思考元素去哪了,返回的boolean又是什麼意思呢? //假設有兩個集合A,B。 //A對B做交集,最終的結果儲存在A中,B不變。 //傳回值表示的是A是否發生過改變。 System.out.println("retainAll:"+c1.retainAll(c2)); System.out.println("c1:" + c1); System.out.println("c2:" + c2); }}
package cn.itcast_01;import java.util.ArrayList;import java.util.Collection;/* * 集合的遍曆。其實就是依次擷取集合中的每一個元素。 * * Object[] toArray():把集合轉成數組,可以實現集合的遍曆 */public class CollectionDemo3 { public static void main(String[] args) { // 建立集合對象 Collection c = new ArrayList(); // 添加元素 c.add("hello"); // Object obj = "hello"; 向上轉型 c.add("world"); c.add("java"); // 遍曆 // Object[] toArray():把集合轉成數組,可以實現集合的遍曆 Object[] objs = c.toArray(); for (int x = 0; x < objs.length; x++) { // System.out.println(objs[x]); // 我知道元素是字串,我在擷取到元素的的同時,還想知道元素的長度。 // System.out.println(objs[x] + "---" + objs[x].length()); // 上面的實現不了,原因是Object中沒有length()方法 // 我們要想使用字串的方法,就必須把元素還原成字串 // 向下轉型 String s = (String) objs[x]; System.out.println(s + "---" + s.length()); } }}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
java之集合Collection 3個例子