泛形

 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 }
View Code

//自定义泛型

 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 }
View Code

 

posted @ 2014-06-17 22:27  是但哥  阅读(211)  评论(0)    收藏  举报