1. 程式人生 > >Java中集合類容器初步了解

Java中集合類容器初步了解

equals treemap 輸入 strong 字符串數組 通過 system 結構 shm

  容器(Collection)

    數組是一種容器,集合也是一種容器

    java編程中, 裝其他各種各樣的對象(引用類型)的一種東西, 叫容器

    (圖書館裏所有的書, 要想管理圖書館裏所有的書, 就需要先把這些書放到一個東西裏面, 目前掌握的知識來說, 只能是數組, 數組的長度是固定的,

    這就出現 個問題, 數組的長度該定義成多長 ? 長度是不固定的, 因為不知道有多少本書, 這個時候需要這樣一種機制:

    定義一種東西, 長度不固定, 可以隨時添加和刪除, 這種東西就是Collection, 只要不超出內存, 隨便往裏添加)

  Collection---接口:

    Set接口

      *HashSet---實現類(以哈希碼表為底層的實現機制)

      TreeSet---實現類(以二叉樹(一種數據結構)為底層的實現機制)

      沒有順序, 不可以重復(可以互相equals就叫重復)

    !List接口
      *ArrayList---實現類(以數組為底層的實現機制)

      LinkedList---實現類(以鏈表為底層的實現機制)

      有順序, 可以重復

      ArrayList(API中說初始容量為10的, 註意這個問題), LinkedList
      有順序, 可以重復添加
      get
      set(有一個返回值要註意 !)

      add()

      remove(int)

      remove(Object)

      indexOf

      lastIndexOf

    !Map接口(鍵值對)

      *HashMap---實現

      TreeMap---實現類

      每次往裏放的時候都是一對一對的

      HashMap(哈希表做索引), TreeMap(二叉樹做索引)
      鍵值對(鍵不能重復, 什麽叫重復)
      put(為什麽有個返回值啊親 ?)
      get
      remove(為什麽也有個返回值啊親 ?)
      containsKey
      containsValue
      size
      isEmpty
      putAll
      clear

  Collection接口的方法

    Collection接口的使用

      代碼實例: eclipse--com.test3

      Collection<String> c = new ArrayList<String>();

      問題: 為什麽不直接寫ArrayList<String> a = new ArrayList<String>();

      c.add(參數類型必須是Object)

      c.remove方法: 通過判斷兩個對象是否互相的equals來確定是不是該刪除該對象, 自定義的類, 需要自己重寫父類的equals方法

      重寫equals方法, 也應該重寫hashCode方法

      hashCode通常用來做索引, 一個對象通過它的hashCode的值可以找到它在內存中的地址, 所以兩個對象如果equals了,

      而且又要作為索引的情況下, hashCode的值必須相等


  練習:使用String[] args在命令行上檢測輸入的字符串數組各自出現的次數

package com.maya.test;

import java.awt.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class Lianxi {
    public static void main(String[] args) {
        Map c =  new HashMap();
        ArrayList l = new ArrayList();
        
        for(int i=0; i<args.length;i++){
            if(c.get(args[i])==null){
            c.put(args[i], 1);
            }else{
                int valu = (int)c.get(args[i])+1;
                c.put(args[i], valu);
            }
        }
        System.out.println(c);
    }
}

Java中集合類容器初步了解