隨筆 - 19  文章 - 0  trackbacks - 0
          <2012年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜


          集合類:

          為什么使用集合類?

          在面向對象的編程思想中,都是以對象的形式對事物進行描述的,為了保證對象的生命周期,我們需要持有對象
          (什么叫做持有對象呢?Person p = new Person())

          數組和集合類的區別?

          1.數組和集合類都是容器,都能存儲對象
          2.集合類優點就是長度可變,而數組一旦定義.長度是不能修改的.


          集合的特點:

          集合類可用于存儲對象.
          集合類的長度可變
          一個集合可以存儲多種類型的對象..

          Collection 接口:
          1.一個獨立的元素的序列,這些元素從一條或多條規則
          2.collection接口下分為list集合和Set集合
          3.list集合的特點是元素有序,可以允許有重復的元素
          4.set集合的特點是元素無序,不允許有重復的元素
          ↓↓
          List(子接口)
          ↓↓
          ArrayList(實現類)
          1.底層數組實現,查找快,增刪慢
          2.線程不安全
          ----------------------------------
          Vector(實現類)
          1.與ArrayList基本一樣
          2.線程安全
          ----------------------------------
          LinkedList(實現類)
          1.底層是鏈表的實現
          2.增刪快,查找慢


          {
          List集合元素存取方法一致
          使用add()方法增加元素
          由于List集合有序,可以使用get()方法獲取元素
          元素的迭代(Iterator)
          通過集合對象的iterator()方法獲得迭代器Iterator
          通過Iterator迭代器的hasNext()方法判斷是否存在下一個元素
          通過Iterator迭代器的next()方法獲取下一個元素
          元素的迭代(Enumeration)
          迭代Vector集合中的元素可以使用Enumeration
          通過Enumeration的hasNextElements()方法判斷是否還有元素
          通過Enumeration的nextElement()方法返回下一個元素
          }


          ↓↓
          Set(子接口)
          ↓↓
          Set集合無須,不允許有重復的元素
          1.set集合通過存入對象的equals方法來保證集合中沒有重復的元素

          HashSet(實現類)
          HashSet是set的子類,因而沒有重復元素
          底層使用了哈希算法保證沒有重復元素
          存儲對象時,先調用對象的HashSet()方法,找到存儲位置,再和當前的存儲位置上已經存在的元素通過equals()方法進行比較,如果返回false,才能進行存儲
          往HashSet集合里存儲的對象必須是重寫HahCode 和equals()方法。

          TreeSet(實現類)
          TreeSet集合通過二叉樹算法保證無重復元素,并對元素進行排序
          第一種方式: 如果對象實現了Comparable接口,就可以存入TreeSet集合 因為它會自動的去調用里面的一個比較方法.所以在Person里面重寫
          第二種方式: 如果對象沒有實現Comparable接口,在創建TreeSet對象時,需要給構造函數扔進一個比較器,實現Comparator接口 .(必須要在匿名內部類重寫.或者繼承一個類來重寫)

          ----------------------------------

          Map接口:
          1.一組成對的“鍵值對”對象,允許根據鍵來查找值
          2.Map集合的健值不允許有重復的,所以Map所有的鍵都構成了一個Set集合

          Iterable接口:
          1.JDK1.5新定義的接口作為Collection的父接口
          2.主要就是實現了增強for循環

           

          jdk1.5的新特征:

          泛型:
          由于集合可以存儲不同數據類型的對象,所以取元素(地址)時會導致類型轉換錯誤
          jdk1.5新增加了泛型,為了減少操作集合的出錯里
          例如: ArrayList<Person> arraylist = new ArrayList<Person>();
          比喻: 我在每一個掛了一個牌子.只能是Person 使用.做了一個限制..

          使用泛型的好處:
          1.提高的代碼的安全性
          2.講運行期間的問題轉到了編譯期間的問題(你懂的~~)
          3.省起了類型轉換的麻煩
          4.泛型類的出現優化了程序設計

          增強for循環:
          新接口Iterable中定義了增強for循環
          可以通過增強for循環對數組和集合進行遍歷
          在迭代集合元素時,需要定義了泛型才能使用for循環

          可變參數:

          有的時候在設計方法時無法確定將來別人會傳入的參數個數
          JDK1.5增加了新特性可變參數,在函數中只聲明參數類型,不規定個數
          方法接受的參數實際上是一個數組,可以在方法中遍歷數組
          可變參數只能被定義為函數的最后一個形參
          語法格式: 返回值 函數名(參數類型… 形參)

           

           1 package com.javami.kudy.javaapin.StringStudy;
           2 
           3 public class Test {
           4         public static void main(String[]args)
           5         {
           6             show(33,45,7657,332,11,5465);
           7         }
           8         
           9         public static void show(int ... i)
          10         {
          11             for(int num : i)
          12                 System.out.println(num);
          13         }
          14 }
          posted on 2012-08-07 01:09 、小細 閱讀(103) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 高台县| 湘潭县| 上犹县| 年辖:市辖区| 盐津县| 遵化市| 华池县| 巫溪县| 奉节县| 普兰县| 永康市| 龙山县| 平塘县| 阳泉市| 广汉市| 兴和县| 饶平县| 布尔津县| 和龙市| 龙井市| 蒙城县| 扬中市| 兰考县| 墨竹工卡县| 西峡县| 建德市| 东乌珠穆沁旗| 新龙县| 白山市| 丰原市| 岑溪市| 三明市| 太康县| 嘉黎县| 大连市| 文水县| 三门峡市| 满城县| 嘉荫县| 白玉县| 南澳县|