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

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

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

    tbwshc

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

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

      此段代碼的運行結(jié)果是:{1 2 3 4 5}
      可以說明其無序不可重復(fù)的特點。
      3>最后則是map集合,map的實現(xiàn)類常用的有Hashmap,Hashtable和Treemap。
      map與以上兩者稍微的有點不同,它是一種映射關(guān)系,在map中,存儲兩種數(shù)據(jù),tb表達(dá)為map,而以上兩者都只有一個數(shù)據(jù),而且都是通過下標(biāo)來訪問的,map中k是不可以重復(fù)的,而v是可以重復(fù)的,進(jìn)行一段代碼測試
      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獲取對應(yīng)的value值
      String value = map.get(key);
      System.out.println("key="+key+" value="+value);
      }
      }
      }
      }
      此段代碼的運行結(jié)果是:key=1 value=aaa;key=2 value=ddd;key=3 value=ccc。
      這三種集合各有其所試用的地方,對于像我這種初學(xué)者可以讓整個代碼簡化,思路更清晰。
      二:獲得各種數(shù)據(jù)存儲方式長度的方法。
      數(shù)組:定義一個數(shù)組Array[];那么獲得該數(shù)組長度的方法是使用其length方法。
      字符串: String st = "aaa";
      st.length();
      這里的length是字符串的一種屬性,而數(shù)組的length是一種方法。
      List:迭代或者直接通過下標(biāo)輸出,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獲取對應(yīng)的value值
      String value = map.get(key);
      System.out.println("key="+key+" value="+value);
      }
      map先是通過迭代器先得到key值,因為是一種一一對應(yīng)的關(guān)系,所以用key值就可以得到value值了。

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产精品亚洲精品久久精品| 亚洲综合综合在线| 猫咪免费人成在线网站| 日本免费无遮挡吸乳视频电影| 亚洲熟妇无码一区二区三区 | 在线观看片免费人成视频无码| 久久久久亚洲av成人无码电影 | 中文字幕亚洲第一在线| 午夜网站在线观看免费完整高清观看| 亚洲Av无码精品色午夜| 污污网站18禁在线永久免费观看| 亚洲一区二区影院| 免费三级毛片电影片| 亚洲中文字幕无码亚洲成A人片| 最新69国产成人精品免费视频动漫| 亚洲欧洲无码AV不卡在线| 四虎影视精品永久免费| 一本大道一卡二大卡三卡免费| 日韩免费高清一级毛片| 亚洲精品国产高清不卡在线| 中文字幕av无码不卡免费| 亚洲人成电影福利在线播放| 久草在视频免费福利| 亚洲av纯肉无码精品动漫| 无码专区一va亚洲v专区在线| jizz18免费视频| 亚洲视频在线观看免费视频| 四虎永久在线精品免费网址| 亚洲一区二区影院| 亚洲一区二区三区AV无码| 亚洲色大18成人网站WWW在线播放| 国产一级婬片A视频免费观看| 亚洲av永久无码精品网站| 亚洲免费在线视频观看| 亚洲狠狠婷婷综合久久| 99精品视频免费观看| 亚洲一区二区三区成人网站| 精品亚洲视频在线观看| 国产成人精品免费视| 理论秋霞在线看免费| 亚洲精品中文字幕无码AV|