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流)