一、泛型初步 1.泛型是編譯階段的語法,在編譯階段統一集合中的類型。 package com.bjpowernode.java_learning; import java.util.*; public class D93_1_GenercityInitial { public static void ...
一、泛型初步
1.泛型是編譯階段的語法,在編譯階段統一集合中的類型。
package com.bjpowernode.java_learning; import java.util.*; public class D93_1_GenercityInitial { public static void main(String[] args) { //創建一個List集合,只能存儲字元串類型 List<String> strs = new ArrayList<String>(); //添加元素 strs.add("jodsf"); strs.add("jodsffds"); strs.add("jodsfsdf"); strs.add("jodsfjhgfh"); //遍歷 Iterator<String> it = strs.iterator(); while(it.hasNext()) { String s = it.next(); System.out.println(s); } Map<String,Integer> maps = new HashMap<String,Integer>(); //存儲 maps.put("西瓜",10); maps.put("蘋果",10); maps.put("香蕉",20); //遍歷 Set<String> keys = maps.keySet(); Iterator<String> it2 = keys.iterator(); while(it2.hasNext()) { String k = it2.next(); Integer v = maps.get(k); System.out.println(k+"----->"+v); } } }
二、Comparable\定義泛型
1.可以使用泛型是實現Comparable比較類,可以省去了強制轉換類型的麻煩
2.自定義泛型
package com.bjpowernode.java_learning; import java.util.*; public class D93_2_GenericityInitial { public static void main(String[] args) { SortedSet<Manager93> ss = new TreeSet<Manager93>(); //添加 Manager93 m1 = new Manager93(1000.0); Manager93 m2 = new Manager93(1500.0); Manager93 m3 = new Manager93(1300.0); ss.add(m1); ss.add(m2); ss.add(m3); //遍歷 Iterator<Manager93> it = ss.iterator();//迭代器也要使用泛型,寫的時候忘了 while(it.hasNext()) { Manager93 m = it.next(); System.out.println(m); } System.out.println("============="); MyClass93<String> mc = new MyClass93<String>(); //mc.m1(100);這個語句就報錯了,因為我們上面指定了MyClass93類中存儲String類型; mc.m1("100"); } } class Manager93 implements Comparable<Manager93>{//實現的Comparable也要使用泛型,用的時候也忘了 double sal; Manager93(double sal){ this.sal = sal; } public String toString() { return sal+""; } public int compareTo(Manager93 m) { double sal1 = this.sal; double sal2 = m.sal;//這裡使用了泛型不需要強制類型轉換了 if(sal1>sal2) { return 1; }else if (sal1==sal2){ return 0; }else { return -1; } } } //自定義泛型,這裡的T代表可以指定任意類型 class MyClass93<T>{ public void m1(T t) { System.out.println(t); } }
三、源碼:
D93_1_GenercityInitial.java
D93_2_GenericityInitial.java
https://github.com/ruigege66/Java/blob/master/D93_1_GenercityInitial.java
https://github.com/ruigege66/Java/blob/master/D93_2_GenericityInitial.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料