我的java學習日記(15)

Java學習第十五節 之容器、集合

一、常用工具方法

1Collection接口  //優於數組的是可以自動收縮長度

2contains()  //判斷是否存在某元素,對象是元素

3containAll()  //判斷集合是否包含於另一個集合裏邊,對象是集合

4remove()   //移除某元素

5clear()   //清空對應數組

6retainAll()  //求交集

7toArray()  //把對象轉換成數組,數組類型被強制轉換成Object[]

8、求長度:

  String è使用length()方法

  Array è使用的是length屬性

   集合 è使用的是size()方法

程序舉例:

  importjava.util.ArrayList;

import java.util.Collection;

public class test {

        public static void main(String[] args){

 

         Collection<Object> c=newArrayList<Object>(); //定義數組c

          System.out.println( c.isEmpty());  //判斷數組是否爲空

          c.add("123");  //給數組c添加元素

          c.add("456");

          c.add(true);

          c.add('a');

          System.out.println(c.size());  //輸出數組現在的長度

         System.out.println( c.isEmpty());   //判斷數組是否爲空

         c.remove("123");  //移除數組中的某元素

         System.out.println(c.size());  //再次打印數組當前長度

         System.out.println( c.isEmpty());  //判斷數字是否爲空

         c.clear();  //清空數組

         System.out.println(c.size());  //打印數組長度

         System.out.println( c.isEmpty());  //判斷數組是否爲空

      

  Collection<Object>c1=new ArrayList<Object>();  //定義數組c1

          c1.add("123");

          c1.add("456");  //給數組c1添加元素

          c1.add(true);

         

         System.out.println(c.contains("123"));   //判斷當前數組c是否含有傳進來的該元素

         System.out.println(c1.contains("123"));  //判斷當前數組c1是否含有傳進來的該元素

         

          System.out.println(c.containsAll(c1));  //判斷數組c是否包含在數組c1裏邊

          System.out.println(c1.containsAll(c));  //判斷數組c1是否包含在數組c裏邊

              }    

}

二、集合List

1List集合分爲ArrayListLinkedList

 

2List遍歷方法

   1)普通for循環

    (2)增強for循環,即for-each循環

   3)迭代器

3、代碼練習

public class ListTest2{

  

   public void useList(List list){  //封裝使用list實現輸入法的方法

          while(true){

          System.out.println("請輸入拼音;");

          Scanner s=new Scanner(System.in);

          String pinyin=s.next();

          if(pinyin.equalsIgnoreCase("quit")){

             break;    

          }    

          boolean exist=true;

         

          for(Object o:list){

                 Words word=(Words)o;

                 String py=word.getPinyin();

                 String ws=word.getWords();

           

             if(py.equals(pinyin)){

                    String[] wo=ws.split("");

                    for(inti=0;i<wo.length;i++){

                           System.out.print((i+1)+""+wo[i]+"  ");

                    }

                    System.out.println();

                    break;

             }

             if(!exist){

                    System.out.println("您輸入的拼音不存在!!");

             }

          }

     }

 }

 

public staticvoid main(String[] args){  //主方法測試

          Words w1=newWords("zhang","張,長,漲,章,帳");  //初始化對象

          Words w2=newWords("zhao","找,照,招,着,趙");

          Words w3=newWords("qian","錢,前,千,$_$,欠,倩");

          Words w4=newWords("sun","孫,損,筍,隼");

          Words w5=newWords("li","裏,李,理,離,力");

         

          List list=new ArrayList();  //創建數組list

          list.add(w1);  //把上邊初始化的對象添加到數組裏邊

          list.add(w2);

          list.add(w3);

          list.add(w4);

         

          ListTest lt=new ListTest ();

          t.useList(list);

4list中類Connections的常用方法

1)      Connections.sort(list) è list按從小到大的順序排列

2)      Connections.reverse(list)è list反序排列

3)      Connections.shuffle(list)è list隨機排列

4)      Connections.fill(list,元素)è 將元素填充到集合list裏邊,並排序

5)      Connections.copy(list1,list) è 將集合list裏邊的元素全部複製進集合list1裏邊

6)      Connections.binarySeach() è 查找

注意:1、 缺點:沒有類型檢測,不安全;效率低,需要裝箱、拆箱(可使用泛型改善該情況)

三、集合Set

實現可分爲HashSet()TreeSet()

1HashSet(),無序的,散列表

2TreeSet(), 有序的,樹形結構,必須實現comparable接口è實現ComparableTo()方法,返回的數字,0表示相等,負數表示小於,正數表示大於。

四、集合Map

1、分類:HashMapHashTableTreeMap

2、遍歷方法:keySet()è所有鍵

             values()è所有的值

              entrySet()è所有entry條目,包括鍵和值

 五、泛型,上述集合中使用泛型可避免警告

泛型優點:1、檢測類型,避免錯誤

           2、提高效率

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章