<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tbwshc

    Java集合框架中幾種集合的分析

            集合可以理解為在內存中存放一組對象的容器,對象是數據的封裝,而對象又構成了集合。在java中的集合框架是一種線性的數據結構,但是它分為兩種,一種是物理結構,一種是邏輯結構。物理結構是一種連續存儲的結構,比如說數組;而邏輯結構可以理解為在內存塊中是不連續的,比如說鏈表,一個鏈表是分為兩中內容的,一個是該鏈表所存儲的數據,還有一個呢,那就是指向下一個鏈表的指針,通過指針而把表給連起來,稱之為鏈表。數組其實也是可以完成像集合一樣的存儲的,但是數組存在一定的弊端,數組一旦創建,其大小,類型是固定的,在特定的情況下不能更方便的使用,因此,為了與數組互補,集合也就應運而生了。
      在java.util包中存在三種最重要的集合,其分別是list,set,map,它們各自有各自的特點,這三種都是接口。其中list:1> list的實現類主要有ArrayList,Linkedlist及其Vector,list中存儲的數據是有序的,而且也是可以重復的,也就是說list按照添加的順序,依次的tb存儲在list下標從小到大的位置。做一個簡單的代碼測試
      public class Test {
      public static void main(String[] args) {
      Test test = new Test();
      test.testList();
      public void testList(){//類
      //創建一個List對象
      List list = new ArrayList();
      list.add(1);
      list.add(1);
      list.add(2);
      for(Object a:list){
      System.out.print(a+" ");
      }
      }
      此段代碼的運行結果為:{1 1 2}
      反應了其有序可重復的特點。
      2>set同樣是一個接口,它常用的實現類有Hashset,Treeset。set集合的存儲特點可以說是和list完全相反的,它是一種無序而且不能重復的存儲特點。同樣的用代碼做一個測試 public class Test {
      public static void main(String[] args) {
      Test test = new Test();
      test.testSet();
      public void testSet(){
      //創建Set對象
      Set set = new HashSet();
      set.add(1);
      set.add(2);
      set.add(5);
      set.add(3);
      set.add(4);
      set.add(1);
      set.add(null);
      System.out.println(set);
      Iterator it = set.iterator();
      while(it.hasNext()){//判斷有元素可迭代
      int i = it.next();
      System.out.print(i+" ");
      }
      }
      }
      }

      此段代碼的運行結果是:{1 2 3 4 5}
      可以說明其無序不可重復的特點。
      3>最后則是map集合,map的實現類常用的有Hashmap,Hashtable和Treemap。
      map與以上兩者稍微的有點不同,它是一種映射關系,在map中,存儲兩種數據,tb表達為map,而以上兩者都只有一個數據,而且都是通過下標來訪問的,map中k是不可以重復的,而v是可以重復的,進行一段代碼測試
      public class Test{
      public static void main(String[] args){
      testmap test=new testmap();
      public void testMap(){
      Map map = new HashMap();
      map.put(1, "aaa");
      map.put(2, "bbb");
      map.put(3,"ccc");
      map.put(2, "ddd");
      System.out.println(map);
      //獲取key集合(Set)
      Set set = map.keySet();
      Iterator it = set.iterator();
      while(it.hasNext()){
      int key = it.next();
      //通過key獲取對應的value值
      String value = map.get(key);
      System.out.println("key="+key+" value="+value);
      }
      }
      }
      }
      此段代碼的運行結果是:key=1 value=aaa;key=2 value=ddd;key=3 value=ccc。
      這三種集合各有其所試用的地方,對于像我這種初學者可以讓整個代碼簡化,思路更清晰。
      二:獲得各種數據存儲方式長度的方法。
      數組:定義一個數組Array[];那么獲得該數組長度的方法是使用其length方法。
      字符串: String st = "aaa";
      st.length();
      這里的length是字符串的一種屬性,而數組的length是一種方法。
      List:迭代或者直接通過下標輸出,list.size()
      set:迭代while(it.hasNext()){//判斷有元素可迭代
      int i = it.next();
      System.out.print(i+" ");
      }
      map:只能用迭代的方法,
      //獲取key集合(Set)
      Set set = map.keySet();
      Iterator it = set.iterator();
      while(it.hasNext()){
      int key = it.next();
      //通過key獲取對應的value值
      String value = map.get(key);
      System.out.println("key="+key+" value="+value);
      }
      map先是通過迭代器先得到key值,因為是一種一一對應的關系,所以用key值就可以得到value值了。

    posted on 2013-07-15 16:52 chen11-1 閱讀(244) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲av无码一区二区三区四区 | 中文字字幕在线高清免费电影| 亚洲欧洲无码AV不卡在线| 日本三级在线观看免费| 十八禁的黄污污免费网站| 久久亚洲春色中文字幕久久久 | 超pen个人视频国产免费观看| 毛片免费vip会员在线看| 成在人线AV无码免费| 国产精品嫩草影院免费| 免费又黄又爽的视频| 亚洲?V乱码久久精品蜜桃 | 免费A级毛片在线播放不收费| 国产乱子伦片免费观看中字| 全黄a免费一级毛片人人爱| 亚洲国产精品综合久久一线| 国产亚洲精品自在线观看| 亚洲AV午夜福利精品一区二区 | 爽爽日本在线视频免费| 全部免费毛片在线| 亚洲宅男天堂在线观看无病毒 | 久久不见久久见免费影院| 精品剧情v国产在免费线观看| 国产免费看插插插视频| 亚洲免费无码在线| 亚洲av午夜成人片精品网站 | 亚洲国产精品成人久久蜜臀| 久久亚洲精品无码观看不卡| 久久亚洲精品成人| 亚洲人成网网址在线看| 国产成人综合亚洲绿色| 中文字幕免费播放| 4399好看日本在线电影免费| 国产成人免费手机在线观看视频| 亚洲日韩中文字幕日韩在线| 亚洲AV日韩AV高潮无码专区| 成人亚洲国产va天堂| 夜夜爽妓女8888视频免费观看 | 亚洲欧美成人一区二区三区| 成年网在线观看免费观看网址 | 男男gvh肉在线观看免费|