1. 程式人生 > >Java基礎部分(3)

Java基礎部分(3)

Java中的常用類2

  集合

 陣列與集合的區別:

  1、陣列長度固定,集合長度可變。

  2、陣列可以儲存基本資料型別,集合只能儲存物件。

 集合類的結構圖以及相關特點:

Collection
  |--List 有序,可重複
    |--ArrayList
      底層資料結構是陣列,查詢快,增刪慢。
      執行緒不安全,效率高
    |--Vector
      底層資料結構是陣列,查詢快,增刪慢。
      執行緒安全,效率低
    |--LinkedList
      底層資料結構是連結串列,查詢慢,增刪快。
      執行緒不安全,效率高
  |--Set 無序,唯一
    |--HashSet
      底層資料結構是雜湊表。
      如何保證元素唯一性的呢?
        依賴兩個方法:hashCode()和equals()
        開發中自動生成這兩個方法即可
      |--LinkedHashSet
        底層資料結構是連結串列和雜湊表
        由連結串列保證元素有序
        由雜湊表保證元素唯一
    |--TreeSet
      底層資料結構是紅黑樹。
      如何保證元素排序的呢?
        自然排序
        比較器排序
      如何保證元素唯一性的呢?
        根據比較的返回值是否是0來決定

Map

  |--HashMap

    底層資料結構是雜湊表

    儲存的是鍵值對形式的元素,鍵唯一,值可以重複。

 集合中最常用類之 ArrayList類:

//這裡的E代表泛型,可以理解成Object型別(雖然這樣不準確,但是能夠幫助理解)

//新增功能
public boolean add(E o)
public void add(int index,E obj)

//刪除功能
public  E remove(int index) //根據索引刪除
public  boolean remove(Object o) //根據內容刪除

//獲取功能
public E get
(int index) //獲取指定位置上的元素 public int size() //獲取列表中的元素數量 //修改功能 public E set(int index, E element) //替換指定位置內容 //判斷 public boolean contains(Object elem) //是否包含指定元素 public boolean isEmpty() //判斷是否為空 //轉換 public Object[] toArray() //將集合轉換為陣列

 

 集合中最常用類之HashSet類:

  特別說明1:HashSet集合的底層資料結構是雜湊表。

  特別說明2:HashSet的唯一性是由,hashCode()和equals()這兩個方法來保證的。所以需要重新這兩個方法來實現特定的唯一需求。

//新增功能 
public boolean add(E o) //如果此集合中還不包含指定元素,則新增指定元素。 

//刪除功能
public boolean remove(Object o) //如果指定元素存在於此集合中,則將其移除。 
public void clear() //從此集合中移除所有元素。 

//判斷功能
public boolean contains(Object o) // 如果此集合不包含指定元素,則返回 true。 
public boolean isEmpty() //如果此集合不包含任何元素,則返回 true。
 
//獲取功能
public int size() //返回此集合中的元素的數量(集合的容量)。
  
//複製功能
public Object clone() //返回此 HashSet 例項的淺表複製:並沒有克隆這些元素本身。 

//迭代器功能,用於遍歷集合
public Iterator<E> iterator() //返回對此集合中元素進行迭代的迭代器。

 集合中最常用類之HashMap類:

  特別說明1:Map集合中的內容,都是以鍵值對的形式來儲存的。並且鍵唯一,值可以重複。

  特別說明2:這種鍵值對的儲存形式,在一些其他語言中又叫做字典。

//新增功能
public  V put(K key, V value) //新增鍵值對
public void putAll(Map<? extends K,? extends V> m) 
//刪除功能
public  void clear() //刪除所有
public  V remove(Object key) //根據鍵刪除資料
//判斷功能
public  boolean containsKey(Object key) //判斷是否包含該鍵
public  boolean containsValue(Object value) //判斷是否包含該值
public  boolean isEmpty() //判斷是否為空
//獲取功能
public V get(Object key)  //根據鍵找值
public Set<K> keySet()  //獲取鍵的集合資訊
public  Collection<V> values()  //獲取值的集合資訊
//長度功能
public int size() 

 

 

   檔案相關類(IO流)