eboy's java

          交流QQ: 84461376
          posts - 3, comments - 0, trackbacks - 0, articles - 0

          導航

          <2012年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          JAVA 泛型學習

          Posted on 2012-07-19 22:51 eboy 閱讀(160) 評論(0)  編輯  收藏
          /**
           * 在使用泛型時,如果兩邊同時用到了泛型,兩邊必須一致,例:ArrayList<String> list = new ArrayList<String>();
           * 在使用泛型時,如果僅一邊用到了泛型,這是可以的,為了保持向后兼容性,例: ArrayList<String> list = new ArrayList();  ArrayList list = new ArrayList<String>();
           
          */

          import java.util.ArrayList;
          import java.util.HashMap;
          import java.util.HashSet;
          import java.util.Iterator;
          import java.util.List;
          import java.util.Map;
          import java.util.Set;

          import org.junit.Test;

          public class generic {

              public static void main(String[] args) {
                  List<String> list1 = new ArrayList<String>();        
              
                  list1.add("bbb");
                  list1.add("cc");
                  list1.add("ddd");
                  list1.add("eeee");
                  list1.add("ffffd");
                  
                  //方式1
                  Iterator<String> Strs = list1.iterator();
                  while (Strs.hasNext()){
                      System.out.println(Strs.next());
                  }        
                  
                  //方式2
                  for (String s : list1){
                      System.out.println(s);
                  }
                  
                  
                  Set<Integer> set = new HashSet<Integer>();        
                  set.add(1);
                  set.add(2);
                  set.add(3);
                  set.add(4);
                  set.add(5);
                  set.add(8);
                  set.add(7);
                  
                  //方式1
                  for (Integer i : set){
                      System.out.println(i);
                  }
                  
                  Map<Integer, String> map = new HashMap<Integer, String>();
                  
                  map.put(1, "eboy");
                  map.put(2, "FRR");
                  map.put(3, "LJ");
                  //方式1
                  Set<Integer> set1 = map.keySet();        
                  Iterator<Integer> it = set1.iterator();            
                  while (it.hasNext()){
                      int key = it.next();            
                      System.out.println(map.get(key));
                  }
                  //方式2
                  Set<Map.Entry<Integer, String>> set2 = map.entrySet();
                  
                  Iterator<Map.Entry<Integer, String>> it2 = set2.iterator();
                  while (it2.hasNext()){
                      Map.Entry<Integer, String> entry = it2.next();
                      System.out.println(entry.getKey() + ": " + entry.getValue());
                  }
                  //方式3 1.5
                  for (Map.Entry<Integer, String> entry3 : map.entrySet()){
                      System.out.println(entry3.getKey() + ": " + entry3.getValue());
                  }    
                  
                  
                  String arr[] = {"a", "b", "c", "d"};
                  System.out.println(arr[0]);
                  reverse(arr);
                  System.out.println(arr[0]);
                  
                  
              }
              
              //加個@Text,可用JUnit單獨測試test2方法 
              @Test
              public void test2(){
                  int i;
                  i = 15;
                  String s;
                  s = "asfdsaf";
                  
                  System.out.println("test" + i + s);
              }
              
              //自定義泛型:方法是泛型
              public static <T> void Test(T t){
                  
              }
              
              //自定義泛型:返回值是泛型
              public static <T, E> T Test1(T t, E e){
                  
                  return null;
              }


              //泛型應用實例:交換數組元素
              static <T> void swap(T arr[], int pos1, int pos2){
                  T temp = arr[pos1];
                  arr[pos1] = arr[pos2];
                  arr[pos2] = temp;
              }
              
               //泛型應用實例:接收一個任意數組,并顛倒數組中的所有元素
              static <T> void reverse(T arr[]){
                  int pos1 = 0;
                  int pos2 = arr.length - 1;        
                  
                  T temp = null;
                  
                  while (pos1 <= pos2){
                      temp = arr[pos1];
                      arr[pos1] = arr[pos2];
                      arr[pos2] = temp;
                      pos1++;
                      pos2--;
                  }
                  
              }

          }

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 浮山县| 英吉沙县| 江安县| 同德县| 满洲里市| 宁陵县| 乌海市| 铅山县| 义马市| 黄陵县| 离岛区| 阜南县| 通山县| 龙里县| 砚山县| 宣汉县| 博罗县| 桐柏县| 龙江县| 彭水| 湖南省| 临邑县| 慈溪市| 神木县| 平顶山市| 扎鲁特旗| 秦安县| 长垣县| 洛浦县| 武义县| 江油市| 临漳县| 蓬莱市| 麻栗坡县| 肇东市| 四平市| 桐城市| 宝山区| 济源市| 石狮市| 黄平县|