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

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

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

    和風細雨

    世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運用之術自出。

    鏈表講解

    集合框架的繼承體系

    Java2中包含了6個集合接口,這些接口的通用目的實現類,以及一個集合實用類Collections,共同組成了集合框架的核心.
    6個集合接口如下:
    Collection及其以下的List,Set,以及Set下的SortedSet
    Map及其以下的SortedMap

    鏈表的通用實現

    ArrayList:線程不安全的動態數組類,批量查詢速度快,單個查找速度慢.
    Vector:線程安全的動態數組類,效率比ArrayList低下.
    LinkedList:動態鏈表類,適于在隊列首尾頻繁增刪成員的場合.

    鏈表的創建

    List<Member> ls=new ArrayList<Member>();// 1.5版本及以上

    List ls=new ArrayList();// 1.5版本以下

    之所以將ls類型指定為List<Member>而不是ArrayList<Member>是因為 如果情況變化, ArrayList需要修改成Vector或LinkedList時無須修改其它代碼,僅修改實例類型即可.

    向List中添加元素

    添加單個元素
    ls.add(new Member("Andy",21));

    從別的鏈表中添加多個元素
    List<Member> ls2=new ArrayList<Member>();
    ls2.add(new Member("Felex",21));
    ls2.add(new Member("Gates",23));
    ls.addAll(ls2);

    注意:
    1.5及其以上版本中,添加的元素必須和定義時一致,如ls的類型是List<Member>,那么向其中添加的元素必須是Member或其子類.
    1.5以下版本中,對添加的元素不作檢查,只要是Object即可,如果是基本類型則需裝箱成類類型.如ls.add(new Integer(8));

    刪除鏈表中元素

    ls.remove(member); // 直接刪除對象,member=new Member("Edin",28)
    ls.remove(2);           // 刪除第三個元素
    ls.clear();                // 將已有數據全部清除

    對鏈表進行遍歷

    1) 1.5中獨有的遍歷方法,代碼最短,使用最方便
    for(Member member:ls){
         // member就是依次取出的每個元素
    }

    2) 常規方法,多用于需要取得下標的場合,各版本均適用
    for(int i=0;i<ls.size();i++){
        Member member=ls.get(i);// member就是依次取出的每個元素, 1.5及其以上版本適用, ls.size()為鏈表長度
        Member member=(Member)ls.get(i);// 1.5以下版本適用
    }

    3) 使用Iterator對鏈表進行遍歷的方法,各版本均適用
    for(Iterator it=ls.iterator();it.hasNext();){
        Member member=(Member)it.next();
    }

    鏈表的其它常用的方法

    ls.contains(Object o);// 返回鏈表中是否包含某元素
    ls.indexOf(Object o);// 返回對象o是鏈表中的第幾號元素
    isEmpty();// 返回鏈表中是否有元素

    對鏈表進行排序
    1)讓List中元素必須已經實現Comparable接口:
    public class Member implements Comparable {
      private String name;

      private int age;

      public Member(String name, int age) {
        this.name = name;
        this.age = age;
      }

      public int compareTo(Object obj) {
        Member another = (Member) obj;
        return this.name.compareTo(another.name);// 按名稱排序,如果是this.age-another.age則按年齡排序
      }
     
      public String toString(){
        return "Member name="+name+" age="+age;
      }
    }

    2)排序過程
    List<Member> ls=new ArrayList<Member>();

    ls.add(new Member("Felex",21));
    ls.add(new Member("Gates",23));
    ls.add(new Member("Andy",21));
    ls.add(new Member("Bill",23));
    ls.add(new Member("Cindy",24));
    ls.add(new Member("Dell",27));

    Collections.sort(ls);

    for(Member member:ls){
          System.out.println(member);
    }

    輸出:
    Member name=Andy age=21
    Member name=Bill age=23
    Member name=Cindy age=24
    Member name=Dell age=27
    Member name=Felex age=21
    Member name=Gates age=23

    // 如果需要逆序可以使用Collections.reverse(ls);

    鏈表與數組之間的轉換

    1) List轉換成數組
    List<String> ls=new ArrayList<String>();

    ls.add("Felex");
    ls.add("Gates");
    ls.add("Andy");
    ls.add("Bill");
    ls.add("Cindy");
    ls.add("Dell");

    Object[] arr=ls.toArray();
    for(Object obj:arr){
          System.out.println((Object)obj);
    }

    輸出為:
    Felex
    Gates
    Andy
    Bill
    Cindy
    Dell

    2) 數組轉換成List
    String[] arr={"Andy","Bill","Cindy","Dell"};
    List<String> ls=Arrays.asList(arr);
    for(String str:ls){
         System.out.println(str);
    }

    輸出:
    Andy
    Bill
    Cindy
    Dell

    posted on 2008-02-21 19:26 和風細雨 閱讀(485) 評論(0)  編輯  收藏 所屬分類: J2SE

    主站蜘蛛池模板: 午夜精品免费在线观看| 国产精品嫩草影院免费| 国产成+人+综合+亚洲专| 在线日韩av永久免费观看| 久久免费香蕉视频| 久久99亚洲网美利坚合众国| 成人免费淫片在线费观看| 无套内谢孕妇毛片免费看看| 久久精品国产精品亚洲艾草网| 在线观看无码AV网站永久免费| 免费一区二区三区在线视频 | 亚洲熟伦熟女新五十路熟妇| 99在线视频免费| 牛牛在线精品免费视频观看| 91亚洲国产成人久久精品网站| 国产无遮挡吃胸膜奶免费看视频 | 亚洲成在人线aⅴ免费毛片| 国产成人亚洲综合色影视| 嫩草影院免费观看| 一个人看的www免费视频在线观看| 亚洲第一成年网站视频 | 黄网站色视频免费看无下截| 91亚洲精品视频| 在线日韩日本国产亚洲| 黄色成人网站免费无码av| 国内精品免费视频精选在线观看| 亚洲国产成人精品无码区二本| 亚洲精品亚洲人成在线观看麻豆 | 亚洲精品国精品久久99热一| 日本免费人成黄页网观看视频| 99久久久国产精品免费牛牛四川| 九九免费精品视频在这里| 亚洲精品无码专区| 亚洲综合一区二区精品久久| 亚洲国产另类久久久精品黑人 | 免费观看国产小粉嫩喷水| 男女超爽刺激视频免费播放| 鲁丝片一区二区三区免费 | 国产一级特黄高清免费大片| 无码人妻精品一二三区免费| 91免费国产在线观看|