氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          JAVA基礎 之 List

          概述:

              1.有序的(序號(索引)的序,不是順序的序,相對Set對比產生的說法),可重復集合

              2.List是Collection的子接口,所以List可以使用Collection全部方法。(見本人博客相關文章)

              3.除此之外List還有自己特殊的方法,索引相關的操作(本文重點做這部分的介紹)

              4.刪除的時候防止 躺著中槍   

              5.ListIterator:專門操作list的迭代器(本例未做詳解,有興趣請看api)

              6.兩個基本實現類 ArrayList(非線程安全) 和 Vector(線程安全)

                 1.Vector是一個古老的遺留類(性能差),不推薦使用。

                 2.Vector(Stack) 棧數據結構,使用LinkedList代替

              7.Arrays.ArrayList是一個長度固定的List,只能遍歷不能 操作

              8.LinkedList

                 1.可以用來做雙端隊列和棧

                 2.由于以鏈表形式保存,所以隨機訪問性能較差,但是迭代,插入、刪除的性能比較好,因為可以直接改變指針所指地址(數據結構知識)

          Java代碼:  
          1. package com.cxy.collection;  
          2.   
          3. import java.util.ArrayList;  
          4. import java.util.Arrays;  
          5. import java.util.LinkedList;  
          6. import java.util.List;  
          7.   
          8. /** 
          9.  * @author cxy 
          10.  */  
          11. public class ListTest  
          12. {  
          13.     public static void main(String[] args)  
          14.     {  
          15.         List l=new ArrayList();  
          16.         l.add("幼兒園");  
          17.        l.add("小學");  
          18.         l.add("幼兒園");  
          19.         l.add("中學");  
          20.         l.add("大學");  
          21.         System.out.println(l);  //可以看出可以有重復數據  
          22.           
          23.         System.out.println("索引為3的元素是:"+l.get(3));  
          24.           
          25.         System.out.println("幼兒園第一次出現的索引:"+l.indexOf("幼兒園"));  
          26.         System.out.println("幼兒園第最后一次出現的索引:"+l.lastIndexOf("幼兒園"));  
          27.           
          28.         l.set(3"初中");  //類似修改操作   
          29.         l.add(4,"高中");   //插入  
          30.         System.out.println(l);  
          31.           
          32.         l.remove("幼兒園"); //會刪除第一個找到的 幼兒園  
          33.         System.out.println(l);  
          34.         l.remove(new AA()); //由于AA的equals方法返回true,導致第一個元素被誤認為是和AA相等的,于是躺著就中槍了  
          35.         System.out.println(l);  
          36.         l.remove(new BB()); //BB的equals方法返回false,所以List沒有找到相等的元素刪除。  
          37.         System.out.println(l);  
          38.         l.remove(0);  //通過序號刪除  
          39.         System.out.println(l);           
          40.         ArrayList l1=new ArrayList();  
          41.         l1.ensureCapacity(64); //大的數據集合,使用這個方法一次分配好空間,避免頻繁多次分配,提高性能  
          42.         l1.trimToSize();  //調整至使用空間大小,避免內存浪費。  
          43.           
          44.         try  
          45.         {  
          46.             List temp = Arrays.asList("小學","中學","大學");  
          47.             temp.remove(0);  
          48.         }catch(Exception e)  
          49.         {  
          50.             System.out.println("temp是一個固定長度的list,只能遍歷不能操作");  
          51.         }  
          52.           
          53.         LinkedList ll = new LinkedList();  
          54.         ll.add("aaa");  
          55.         ll.add("bbb");  
          56.         ll.add("ccc");  
          57.         ll.add("ddd");  
          58.         System.out.println("原始:"+ll);  
          59.         ll.addLast("zzz");  //隊列--入隊  
          60.         ll.removeFirst(); //隊列--出隊  
          61.         System.out.println("隊列操作:"+ll);  
          62.         ll.addFirst("kkk"); //棧--入棧  
          63.         System.out.println("kkk入棧:"+ll);  
          64.         ll.removeFirst(); //棧--出棧  
          65.         System.out.println("kkk出棧:"+ll);  
          66.         ll.removeLast();  //體現雙端隊列  
          67.         System.out.println("=========================");  
          68.         ll = new LinkedList();  
          69.         ll.add("aaa");  
          70.         ll.add("bbb");  
          71.         ll.add("ccc");  
          72.         ll.add("ddd");  
          73.         System.out.println("重新初始化:"+ll);  
          74.         ll.push("kkk");  //棧--入棧  
          75.         System.out.println("kkk入棧:"+ll);  
          76.         ll.pop();  //棧--出棧  
          77.         System.out.println("kkk出棧:"+ll);  
          78.           
          79.         ll.offer(""); //隊列--入隊  
          80.         ll.offerFirst("");  //返回true的addFirst  
          81.         ll.offerLast("");  //返回true的addLast  
          82.           
          83.         ll.poll(); //獲取并刪除第一個  
          84.         ll.pollFirst();  //獲取并刪除第一個  
          85.        ll.pollLast();  //獲取并刪除最后一個  
          86.           
          87.         ll.peekFirst(); //獲取不刪除第一個  
          88.         ll.peekLast();  //獲取不刪除最后一個  
          89.           
          90.         ll.removeFirstOccurrence("aaa"); //刪除第一個出現的aaa  
          91.         ll.removeLastOccurrence("aaa"); //刪除最后一個出現的aaa  
          92.     }  
          93. }  
          94.   
          95.   
          96. class AA  
          97. {  
          98.     @Override  
          99.     public boolean equals(Object obj)  
          100.     {  
          101.         return true;  
          102.     }  
          103. }  
          104.   
          105. class BB  
          106. {  
          107.     @Override  
          108.     public boolean equals(Object obj)  
          109.     {  
          110.         return false;  
          111.     }  
          112. }  

          擴展閱讀:JAVA基礎 之 Set     JAVA基礎 之 Collections

          posted on 2013-02-24 16:43 你爸是李剛 閱讀(1440) 評論(0)  編輯  收藏


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


          網站導航:
           
          <2013年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          242526272812
          3456789

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 乐亭县| 敦煌市| 平乡县| 兴化市| 乐都县| 威远县| 精河县| 东海县| 青岛市| 云安县| 五莲县| 樟树市| 博兴县| 辰溪县| 永顺县| 虎林市| 尚义县| 周至县| 高陵县| 上饶市| 东乡| 大渡口区| 丰顺县| 化德县| 上林县| 乌鲁木齐市| 六盘水市| 弋阳县| 丁青县| 台安县| 柘城县| 镇巴县| 凉山| 宁城县| 古丈县| 始兴县| 恩施市| 龙口市| 溆浦县| 嘉定区| 马边|