sisyphus的博客
          熱愛生活
          posts - 1,comments - 1,trackbacks - 0

          類集就是一個(gè)動(dòng)態(tài)的對(duì)象數(shù)組,可以存儲(chǔ)數(shù)量不等的多個(gè)對(duì)象

          對(duì)象數(shù)組:可以保存多個(gè)對(duì)象在一個(gè)數(shù)組中

          問題:數(shù)組的長(zhǎng)度是不可改變的,而類集的大小不確定可以任意的擴(kuò)充或減少

          三個(gè)核心接口
          1、 Collection---List(ArrayList,LinkedList)
                  ---Set
          List
          操作:add()
          List all=new ArrayList();
          all.add("MLDN");
          all.add("LXH");
          默認(rèn)情況下加入數(shù)據(jù)的順序就是輸出的順序
          可以使用特定的方法向指定的位置增加
          使用類集時(shí),加入的對(duì)象最好一種對(duì)象

          從對(duì)象數(shù)組中刪除數(shù)據(jù)用remove()
          一個(gè)個(gè)打印元素的方法:
               1、用for循環(huán)(size()獲取類集的大小、get(int indenx)返回指定位置的元素)
            2、Iterator (開發(fā)中集合都是用該接口輸出)
               因?yàn)榧系拈L(zhǎng)度不固定,所以Iterator采用的方法是一個(gè)個(gè)判斷輸出,
            如果有下一個(gè)元素就執(zhí)行,如果沒有下一個(gè)元素就不執(zhí)行
            判斷是否有下一個(gè)元素:public boolean hasNext();
            取內(nèi)容:public Object next()
            Iterator iter=集合對(duì)象.iterator();
            while(iter.hasNext()){
             object obj = iter.next();
             System.out.println(obj);
            }

          如何讓一個(gè)集合只加入一種對(duì)象
          List<java.lang.String>all = new ArrayList<java.lang.String>();
          便于轉(zhuǎn)型

          (Collection)集合操作的方法總結(jié):
          向集合中加入數(shù)據(jù);
          從集合中刪除數(shù)據(jù);
          為Iterator實(shí)例化;
          取出元素的個(gè)數(shù)。
          Set
          區(qū)別: HashSet 子類加入的對(duì)象是無序的;(散列存放)
              List 中可以存放重復(fù)元素, Set 中不允許存在重復(fù)元素
          如果希望Set中的數(shù)據(jù)按順序(數(shù)據(jù)的大小不是放入數(shù)據(jù)的順序)存放則應(yīng)該使用TreeSet子類
          靠的是Comparable()接口

          2、 Map
          Map的主要功能是作為查找使用而不是作為輸出使用
          存取數(shù)據(jù)的方法:put(Object key,Object value)
          取內(nèi)容:Object get(Object key)
          Map<java.lang.String,java.lang.String> m = new HashMap<java.lang.String,java.lang.String>() ;
          m.put("張三","123456") ;
          m.put("李四","654321") ;
          System.out.println(m.get("趙六")) ;//null

          Map 接口的對(duì)象不能直接使用Iterator輸出
           //下面的這個(gè)方法了解即可
           如果非要使用Iterator輸出Map接口對(duì)象的內(nèi)容,則必須使用以下步驟
          Map ——>Set ——> Iterator ——> Map.Entry ——> key、values

          Set all = m.entrySet() ;
          Iterator iter = all.iterator() ;
          while(iter.hasNext()){
           Map.Entry me = (Map.Entry)iter.next() ;
           System.out.println(me.getKey()+" --> "+me.getValue()) ;
          }

          3、 Iterator

          4、 Enumeration :枚舉,與Iterator的功能一致,都是用于輸出集合中的內(nèi)容

          List 和 Set 都不能使用 Enumeration 輸出
          而 List 的另一個(gè)子類: Vector 可以使用Enumeration輸出

          Vector 是一個(gè)同步操作 性能不是很好 因此后來讓 Vector 也實(shí)現(xiàn)了 Iterator 接口
          使用實(shí)例:
          Vector v = new Vector() ;
          v.add("A") ;
          v.add("A") ;
          v.add("A") ;
          Enumeration e = v.elements() ;
          while(e.hasMoreElements()){
           System.out.println(e.nextElement()) ;
          }

          5、 Stack  (Vector 的子類)(先進(jìn)后出)
          Stack s = new Stack() ;
          s.push("A") ;
          s.push("B") ;
          s.push("C") ;
          s.push("D") ;
          s.push("E") ;
          // 取值
          while(!s.empty()){
           System.out.println(s.pop()) ;
          }

          瀏覽器的前進(jìn)和后退就是用棧實(shí)現(xiàn)的

          6、 Hashtable 與 HashMap 相似,但 Hashtable 是同步的

          7、 Properties 類是 Hashtable 的子類
           不同之處: Properties 類主要是保存字符串的,而 Hashtable 是保存對(duì)象的。
           setProperties(String key,String value)
           getProperties(String key)

          8、 ArrayList 與 Vector

           異步       |  同步
           只支持 Iterator 輸出| 支持 Iterator 和 Enumeration 輸出
              出現(xiàn)較晚   | 出現(xiàn)較早
          9、 HashMap 與 Hashtable
           異步       |  同步
           不直接支持Iterator輸出| 不直接支持Iterator輸出
           出現(xiàn)較晚   | 出現(xiàn)較早

          10、本章重點(diǎn)

          HashMap 與 Hashtable
          ArrayList 與 Vector
          Iterator 與 Enumeration

          保存單個(gè)值的集合:Collection:
           |---List:允許有重復(fù)元素
            |---ArrayList:異步處理,新的類,只能用 Iterator 輸出
            |---Vector:同步處理,舊的類,能 Iterator 和 Enumeration 輸出
           |---Set:不允許有重復(fù)元素
            |---HashSet:散列,無序
            |---TreeSet:有序,按 Comparable 排序
          保存一對(duì)值的集合(Map):
           |---HashMap:異步處理新的類
           |---Hashtable:同步處理舊的類
           |---TreeMap:按KEY進(jìn)行排列的集合
          輸出:
           |---Iterator:新的輸出類,方法名稱較短
           |---Enumeration:舊的輸出類,方法名稱較長(zhǎng)

          posted on 2011-08-06 16:47 sisyphus 閱讀(224) 評(píng)論(1)  編輯  收藏

          FeedBack:
          # re: Java集合學(xué)習(xí)筆記
          2011-08-20 14:50 | GavinMiao
          對(duì)集合的認(rèn)識(shí)更深刻了,謝謝分享!  回復(fù)  更多評(píng)論
            

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 天门市| 承德县| 九龙城区| 安龙县| 丰城市| 西乌珠穆沁旗| 永州市| 微博| 临安市| 石狮市| 安阳市| 镇平县| 陇川县| 潮安县| 泰和县| 明水县| 忻州市| 开鲁县| 阿勒泰市| 青岛市| 乌海市| 永平县| 炎陵县| 乌兰浩特市| 七台河市| 梁河县| 巴彦县| 东方市| 南昌市| 左贡县| 临江市| 邻水| 油尖旺区| 二连浩特市| 迭部县| 尚志市| 庄河市| 富锦市| 东台市| 宿迁市| 抚顺市|