一、關於集合工具類 java.utils.Collections; Collections工具類可以對List集合中的元素進行排序,但是集合中的元素必須是“可以比較的”,實現Comparable介面。 package com.bjpowernode.java_learning; import jav ...
一、關於集合工具類
java.utils.Collections; Collections工具類可以對List集合中的元素進行排序,但是集合中的元素必須是“可以比較的”,實現Comparable介面。 package com.bjpowernode.java_learning; import java.util.Collections; import java.util.*; public class D92_1_CollecitonsToolsClass { public static void main(String[] args) { //使用Collections工具完成集合的排序 List l = new ArrayList(); //添加元素 l.add(10); l.add(5); l.add(9); l.add(20); l.add(30); //遍歷 for(int i=0;i<l.size();i++) { System.out.println(l.get(i)); } System.out.println("============="); //或者這麼寫,使用迭代器 Iterator it = l.iterator(); while(it.hasNext()) { System.out.println(it.next()); } System.out.println("============="); //排序 Collections.sort(l); for(Iterator it2 = l.iterator();it2.hasNext();) { System.out.println(it2.next()); } System.out.println("============="); //給定Set集合 Set s = new HashSet(); s.add(1); s.add(10); s.add(9); s.add(8); s.add(7); //對set集合進行排序 //collections.sort(s);//這個編譯時失敗,不能使用這個方法 //將set集合轉化為List集合 List listS = new ArrayList(s); Collections.sort(listS); for(int i=0;i<listS.size();i++) { System.out.println(listS.get(i)); } System.out.println("============="); //創建List集合,,List集合中存儲Person類型,是否可以排序? List ps = new ArrayList(); ps.add(new Person92()); ps.add(new Person92()); ps.add(new Person92()); ps.add(new Person92()); Collections.sort(ps);//如果不把Person92類中的compareTo方法實現,這裡就會報錯,因為沒有定義排序方法,就無法進行排序 //將ArrayList集合轉換成線程安全的 List myList = new ArrayList(); Collections.synchronizedList(myList); } } class Person92 implements Comparable{ public int compareTo(Object o){ return 1; } }
二、泛型初步
1.關於JDK5.0的新特性:泛型(編譯期概念)
以下程式沒有使用泛型缺點是什麼?
如果集合不使用泛型的話,則集合中的元素類型不統一,在遍歷集合中的時候,只能拿出來Object類型,需要做大量的強制類型轉換,非常麻煩。
package com.bjpowernode.java_learning; import java.util.*; public class D92_2_GenericityInitial { public static void main(String[] args) { //創建一個集合,存儲A,B,C Set s = new HashSet(); //創建對象 A92 a = new A92(); B92 b = new B92(); C92 c = new C92(); s.add(a); s.add(b); s.add(c); //需求:遍歷集合,如果是A92類型調用m1方法,B92類型調用m2方法,C92類型調用m3方法 Iterator i = s.iterator(); while(i.hasNext()) { Object o = i.next(); //只能做大量的強制類型轉換 if(o instanceof A92) { A92 a1 = (A92)o; a1.m1(); }else if(o instanceof B92) { B92 b1 = (B92)o; b1.m2(); }else if(o instanceof C92) { C92 c1 = (C92)o; c1.m3(); } } } } class A92{ public void m1() { System.out.println("A 's m1.."); } } class B92{ public void m2() { System.out.println("B 's m1.."); } } class C92{ public void m3() { System.out.println("C 's m1.."); } }
2.為什麼引入泛型
(1)可以統一集合中的數據類型;
(2)可以減少強制類型轉化。
3.泛型的優缺點:
優點:統一類型,減少強制類型轉化。
缺點:只能存儲一種數據類型。
下次再講代碼實例
四、源碼:
D92_1_CollecitonsToolsClass.java
D92_2_GenericityInitial.java
https://github.com/ruigege66/Java/blob/master/D92_1_CollecitonsToolsClass.java
https://github.com/ruigege66/Java/blob/master/D92_2_GenericityInitial.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料