編程之道

          無論是批評的,贊揚的,指著的都請EMAIL給我,你的建議將是我前進的動力! 聯系我

          Java學習筆記-集合框架

          集合框架是提供管理對象集合的接口和類,它包含3個組件:


          1.接口 :表示集合的抽象數據類型
             a.Collection接口:是構建集合框架的根。
             b.Set接口:擴展了Collection接口,它不允許有重復元素。
             c.List接口:擴展了Collection接口,一些集合具有順序,通常被成為列表。
             d.Map接口:沒有繼承Collection接口,具有鍵和值的對象。不能包含重復鍵,但可以包含重復值。

          2.類 :用于存儲集合的實際數據對象
             a.ArrayList :優點是可以動態添加數據元素,遍歷效率比LiskedList快。
             b.LinkedList:這是一種鏈表的數據結構,它和數組的區別在于數組是一段連續的內存空間,而
          鏈表可以是不連續的,這一點就說明了鏈表對內存空間的合理利用??聪聠蜗蜴湵淼慕Y構圖:

          頭節點先指向第1個節點,然后節點1的指針域又指向下一個節點,最后由于節點3后面沒元素了,就為null。
          試想一下當對鏈表進行插入刪除的時候只需要將指針域的指向改變一下就可以達到所需效果,而數組插入
          刪除的時候需要將插入或刪除的位置后所有元素后移或前移,很顯然在算法上插入刪除操作鏈表要比數組快。
          說了這么多數組與鏈表的區別,下面來看看LinkedList這個類怎么用:

          import java.util.*;

          public class linkedlist
          {
           
          public static void main(String[] args)
           
          {
            LinkedList linked
          =new LinkedList();
            
          //add element
            linked.add("111");
            linked.add(
          "222");
            linked.addFirst(
          "111");//allow repeat
            linked.addLast("555");
            System.
          out.println(linked);
            
          //insert element
            linked.add(1,"333");
            System.
          out.println(linked);
            
          //modify 
            linked.set(2,"555");
            System.
          out.println(linked);
            
          //remove
            linked.remove(2);
            System.
          out.println(linked);
           }

          }

             c.HashSet:一看就知道是哈西散列表的集合類,不能有重復元素。例子免了,比較簡單的,上段代碼我已經
          后悔寫了,用過java的都知道。
             d.TreeSet:將元素儲存在樹中,適合快速檢索大量排序信息。
             e.HashMap:HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
          Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。

          3.算法 :用于操作集合,并被定義為Collections類中的靜態方法,給個例子就很好理解了

          import java.util.*;

          public class linkedlist
          {
           
          public static void main(String[] args)
           
          {
            LinkedList linked
          =new LinkedList();
            
          //add element
            linked.add("111");
            linked.add(
          "222");
            linked.addFirst(
          "333");
            linked.addLast(
          "555");
            System.
          out.println(linked);
            
          //來個排序
            Collections.sort(linked);
            System.
          out.println(linked);
            
          //如果要反轉排的要定義一個Comparator的接口
            Comparator cmp=Collections.reverseOrder();
            Collections.sort(linked,cmp);
            System.
          out.println(linked);
           }

          }




          還有N多方法,自己去試試把。

          其實還有很多集合類和接口:
          最后總結下結合框架的優點(抄書):
          1.集合框架提供了一組可用的集合接口
          2.提供了有效的數據結構和算法,減少了編程量
          3.使我們方便的擴展集合
          4.設計新API的工作降到最少
          5.接口算法的可重用性提高了軟件的可重用性

          posted on 2005-08-19 06:55 瘋流成性 閱讀(416) 評論(0)  編輯  收藏 所屬分類: j2se


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


          網站導航:
           
          主站蜘蛛池模板: 雅江县| 怀化市| 莫力| 沽源县| 汕头市| 许昌县| 郧西县| 湘潭市| 阿拉善左旗| 甘肃省| 修水县| 曲麻莱县| 东丽区| 桐乡市| 宣汉县| 冀州市| 繁昌县| 休宁县| 漳浦县| 龙游县| 永和县| 和静县| 宁波市| 泽州县| 海晏县| 开阳县| 太康县| 德兴市| 永修县| 霍城县| 上犹县| 冕宁县| 龙海市| 新龙县| 康平县| 高平市| 江达县| 安仁县| 洛扎县| 三都| 文安县|