泛形
1 import java.util.ArrayList; 2 import java.util.HashMap; 3 import java.util.Iterator; 4 import java.util.List; 5 import java.util.Map; 6 import java.util.Set; 7 8 import org.junit.Test; 9 10 public class Demo { 11 12 /** 13 * @param args 14 */ 15 public static void main(String[] args) { 16 17 List list = new ArrayList(); 18 19 list.add("zero"); 20 21 Integer o = (Integer) list.get(0); 22 23 // 使用泛型后 24 List<String> list2 = new ArrayList<String>(); 25 26 list.add("one"); 27 28 String str = list2.get(0); 29 30 } 31 32 @Test 33 public void test2() { 34 35 Map<Integer, String> map = new HashMap(); 36 map.put(3, "zero"); 37 map.put(1, "one"); 38 map.put(4, "two"); 39 40 // 传统keyset,entrySet 41 Set<Map.Entry<Integer, String>> set = map.entrySet(); 42 43 Iterator<Map.Entry<Integer, String>> it = set.iterator(); 44 45 while (it.hasNext()) { 46 47 Map.Entry<Integer, String> entry = it.next(); 48 int key = entry.getKey(); 49 String value = entry.getValue(); 50 51 System.out.println(key + ":" + value); 52 53 } 54 55 // 增强for(重点) 56 for (Map.Entry<Integer, String> entry : map.entrySet()) { 57 int key = entry.getKey(); 58 String value = entry.getValue(); 59 60 System.out.println(key + ":" + value); 61 } 62 63 } 64 //用泛型时,如果两表都使用到泛型,两边必须要一样。 65 66 }
//自定义泛型
1 //自定义带泛型的方法 2 public class Demo2<T> { 3 4 public T a(){ 5 return null; 6 } 7 8 public T a(T t){ 9 return null; 10 } 11 12 public <E,K> void a(T t,E e,K k){ 13 14 } 15 16 public static <T> void c(T t){ 17 18 } 19 20 //编写一个泛型方法,实现指定位置上的数组元素的交换。 21 public <T> void swap(T arr[],int pos1,int pos2){ 22 T temp = arr[pos1]; 23 arr[pos1] = arr[pos2]; 24 arr[pos2] = temp; 25 } 26 27 //编写一个泛型方法,接收一个任意数组,并点到数组中的所有元素 28 29 public <T> void reverse(T arr[]){ 30 int start = 0; 31 int end = arr.length-1; 32 33 while(true){ 34 if(start>=end){ 35 break; 36 } 37 38 T temp = arr[start]; 39 arr[start] = arr[end]; 40 arr[end] =temp; 41 42 start++; 43 end--; 44 } 45 } 46 47 48 }

浙公网安备 33010602011771号