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 閱讀(246) 評論(0)  編輯  收藏


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


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(4)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          tbw淘寶商城-首頁

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安顺市| 威信县| 仙桃市| 惠东县| 北流市| 麻城市| 视频| 财经| 仪陇县| 景东| 吴旗县| 清徐县| 曲阳县| 崇文区| 保定市| 留坝县| 茂名市| 阳朔县| 瑞安市| 怀来县| 华阴市| 博白县| 陵川县| 定安县| 石台县| 平安县| 南汇区| 府谷县| 永泰县| 乐至县| 二连浩特市| 日照市| 广元市| 南和县| 长汀县| 彭泽县| 钟祥市| 乐业县| 恩施市| 鲁山县| 枞阳县|