泛型简介

泛型一般使用在集合上

语法:

集合<类型>,如List<String> list = new ArrayList<String>();

 在list上使用泛型:代码如下

 1 package com.泛型;
 2 
 3 
 4 import java.util.ArrayList;
 5 import java.util.Iterator;
 6 import java.util.List;
 7 
 8 import org.junit.Test;
 9 
10 public class ListTest {
11     @Test
12     public void TestList(){
13         List<String> list = new ArrayList<String>();
14         list.add("aaa");
15         list.add("bbb");
16         list.add("ccc");
17         
18         //遍历集合的三种方式
19         /**
20          * 1、普通for循环
21          */
22         for(int i = 0;i<list.size();i++){
23             System.out.println(list.get(i));
24         }
25         System.out.println("=================================");
26         /**
27          * 2、增强for循环
28          */
29         for (String string : list) {
30             System.out.println(string);
31         }
32         System.out.println("=================================");
33         /**
34          * 3、迭代器
35          */
36         Iterator<String> iterator = list.iterator();
37         while(iterator.hasNext()){
38             System.out.println(iterator.next());
39         }
40 
41 
42     }
43 }

在set上使用泛型,同list,set是无序的、不可重复的。

在map上使用泛型,代码如下:

 1 @Test
 2     public void mapTest(){
 3         Map<String,String> map = new HashMap<String,String>();
 4         map.put("aaa", "111");
 5         map.put("bbb", "222");
 6         map.put("ccc", "333");
 7         /**
 8          * 遍历map集合的第一种方法
 9          * 
10          */
11         Set<String> key = map.keySet();
12         for (String string : key) {
13             String value = map.get(string);
14             System.out.println(string + "  "+value);
15         }
16         
17         /**
18          * 第二种方法
19          */
20         Set<Entry<String, String>> set= map.entrySet();
21         for (Entry<String, String> entry : set) {
22         String keyv =    entry.getKey();
23         String valuev = entry.getValue();
24         System.out.println(keyv +"  "+valuev);
25         }
26         
27     }

注意:在泛型里写的是个对象,不能写基本数据类型,写它的包装类。

泛型方法:

1、使用泛型方法需要定义一个类型,使用大写字母表示,通常使用T:这个T表示任意类型

2、这个T写在返回值之前或者void之前

代码如下:

 1 package com.泛型;
 2 
 3 import java.util.Arrays;
 4 
 5 import org.junit.Test;
 6 
 7 public class 泛型方法 {
 8     public <T> void swap(T [] arr,int a,int b){
 9         T temp = arr [a];
10         arr [a] = arr [b];
11         arr [b] = temp;
12     }
13     @Test
14     public void arrTest(){
15         Integer [] arr = {1,2,3,4,5};
16         swap(arr, 2, 3);
17         System.out.println(Arrays.toString(arr));
18     }
19 }
原文地址:https://www.cnblogs.com/jiangjianzhu/p/5472175.html