java 常用的三大集合類

來源:互聯網
上載者:User

標籤:first   方式   需求   one   數值   ddl   []   get   唯一性   

一、Set集合。其主要實作類別有HashSet、TreeSet。存放對象的引用,不允許有重複對象。 

代碼:

  public class SetTest {

    public static void main(String[] args) {
      Set set=new HashSet();
       //添加資料
        set.add("abc");
      set.add("cba");
      set.add("abc");//故意重複
      set.add(123);
      set.add(true);
  
      System.out.println("集合元素個數:"+set.size());
        //遍曆出集合中每一個元素
       Iterator it=set.iterator();
       while(it.hasNext()){
         System.out.println(it.next());
        }
     }
  }

通過java的equals()方法判別。如果有特殊需求須重載equals()方法。

1.HashSet(),調用對象的hashCode()方法,獲得雜湊碼,然後再集合中計算存放對象的位置。通過比較雜湊碼與equals()方法來判別是否重複。所以,重載了equals()方法同時也要重載hashCode()方法。

2.TreeSet(),繼承ShortedSet介面,能夠對集合中對象排序。預設排序方式是自然排序,但該方式只能對實現了Comparable介面的對象排序,java中對Integer、Byte、Double、Character、String等數值型和字元型對象都實現了該介面。 
如果有特殊排序,須重載該介面下的compareTo()方法或通過Comparator介面的實作類別構造集合。 

二、List集合,其主要實作類別有LinkedList、ArrayList,前者實現了鏈表結構,後者可代表大小可變的數組。List的特點是能夠以線性方式儲蓄對象,並允許存放重複對象。List能夠利用Collections類的靜態方法sort排序。sort(List list)自然排序;sort(List listm,Comparator codddmparator)客戶化排序。

代碼:

  public class ListTest {

     //ArrayList
     static void testOne(){
      List list=new ArrayList();
       //添加資料
       list.add("abc");
       list.add("cba");
       list.add(123);
       list.add(0,"fist");
       //查看集合長度
       System.out.println("存放"+list.size()+"個元素");
       list.remove(0);//刪除第一個元素
       //查看集合中是否包含cba
       if(list.contains("cba")){
        System.out.println("包含元素cba");
    }
  
       //取出集合中第二個元素
       System.out.println("第二個元素是:"+list.get(1));
  
       //取出集合中所有元素
       for (int i = 0; i < list.size(); i++) {
         System.out.println(list.get(i));
      }
     }
 
      //LinkedList
      static void testTwo(){
      LinkedList list=new LinkedList();
      //添加元素
      list.add("aaaa");
      list.add(123123);
      list.addFirst("1111111");
      list.addLast("2222222");
      list.add("33333333");
  
      System.out.println("元素個數:"+list.size());
      //取出第三個元素
      System.out.println("第三個元素是:"+list.get(2));
  
      //第一個元素
      System.out.println("第一個元素:"+list.getFirst());
      System.out.println("最後一個元素:"+list.getLast());
  
      //刪除第一個元素
      list.removeFirst();
  
      for (Object object : list) {
        System.out.println(object);
      }
     }
 
 
    public static void main(String[] args) {
      //testOne();
      testTwo();
     }
  }

三、Map集合,其主要實作類別有HashMap、TreeMap。Map對值沒有唯一性要求,對健要求唯一,如果加入已有的健,原有的值對象將被覆蓋。HashMap類按照雜湊演算法來存取鍵對象,可以重載equals()、hashCode()方法來比較鍵,但是兩者必須一致。TreeMap,可自然排序,也可通過傳遞Comparator的實作類別構造TreeMap。

代碼:

  public class MapTest {

    public static void main(String[] args) {
       //執行個體化一個集合對象
       Map map=new HashMap();
       //添加資料
       map.put("P01", "zhangSan");
       map.put("P02", "Lucy");
       map.put("PSex", "男");
       map.put("PAge", "39");
       map.put("PAge", "22");//key,重複會被後面的覆蓋
  
       //判斷是否有一個key為PSex
       if(map.containsKey("PSex")){
        System.out.println("存在");
        }
      System.out.println("集合大小:"+map.size());
      System.out.println("輸出key為PAge的值:"+map.get("PAge"));
  
      //遍曆出Map集合中所有資料
      Iterator it=map.keySet().iterator();
      while(it.hasNext()){
      String key=it.next().toString();
      System.out.println("key="+key+",value="+map.get(key));
    }
      /*
      Set set=map.keySet();//取出map中所有的key並封裝到set集合中
      Iterator it=set.iterator();
      while(it.hasNext()){
      String key=it.next().toString();
      System.out.println("key="+key+",value="+map.get(key));
    }
      */
    }
  }

  

java 常用的三大集合類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.