现在的位置: 首页 > 综合 > 正文

泛型

2014年02月21日 ⁄ 综合 ⁄ 共 1991字 ⁄ 字号 评论关闭

 

 
1.   泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
2.   如何通过迭代输出List泛型中的值:
3.   @Test
4.   public void test1() {
5.   List<String> list = new ArrayList<String>();
6.   list.add("adc");
7.   list.add("def");
8.   list.add("cde");
9.   Iterator<String> it = list.iterator();
10. while (it.hasNext()) {
11. String value = it.next();
12. System.out.println(value);
13. }
14. }
15. 如何是通过for循环输出Map泛型中的值:
16. @Test
17. public void test2() {
18. Map<Integer, String> map = new HashMap<Integer, String>();
19. map.put(1, "redarmy");
20. map.put(2, "mj");
21. map.put(3, "xiaoshenyang");
22. Set<Map.Entry<Integer, String>> entries = map.entrySet();
23. for (Map.Entry<Integer, String> entry : entries) {
24. System.out.println(entry.getKey());
25. System.out.println(entry.getValue());
26. }
27. }
28. 如何是通过While循环迭代输出Map泛型中的值:
29. @Test
30. public void test3() {
31. Map<Integer, String> map = new HashMap<Integer, String>();
 
32. map.put(1, "redarmy");
33. map.put(2, "mj");
34. map.put(3, "xiaoshenyang");
35. Set<Integer> keys = map.keySet();
36. Iterator<Integer> it = keys.iterator();
37. while(it.hasNext()){
38. int key = it.next();
39. System.out.println(key+" "+map.get(key));
 
40. }
 
 
41. }
42. 我们也可以自定义泛型可以是类也可以是方法等等,Java程序中的普通方法、构造方法和静态方法中都可以使用泛型。方法使用泛形前,必须对泛形进行声明,语法:<T> ,T可以是任意字母,但通常必须要大写。<T>通常需放在方法的返回值声明之前。
43. 利用自定义泛型实现一个简单的数组位置的交换:
44. public class Demo04 {
45. public static <T> void test1(T arr[], int i, int j) {
46. T temp = arr[i];
47. arr[i] = arr[j];
48. arr[j] = temp;
49. }
50. /* 实现数组的倒序 */
51. public static <T> void test2(T arr[]) {
52. int startindex = 0;
53. int endindex = arr.length - 1;
54. for (;;) {
55. if (startindex >= endindex) {
56. break;
57. }
58. T temp = arr[startindex];
59. arr[startindex] = arr[endindex];
60. arr[endindex] = temp;
61. startindex++;
62. endindex--;
63. }
64. }
 
65. public static void main(String[] args) {
66. Integer arr[] = { 1, 2, 3, 4 };
67. // test1(arr,0,2);? 怎么使用呢?引用数据类型
68. /*
test1(arr,0,2); for(int ar:arr){ System.out.print("["+ar+","+"]"); }
testChange();
69. */
70. test2(arr);
71. for (int ar : arr) {
72. System.out.print("[" + ar + "," + "]");
73. }
74. }
75. }
76. //注意:在泛型中T代表是引用数据类型
 

抱歉!评论已关闭.