Java中的經常使用類2數組
集合安全
數組與集合的區別:數據結構
一、數組長度固定,集合長度可變。spa
二、數組能夠存儲基本數據類型,集合只能存儲對象。線程
集合類的結構圖以及相關特色:code
Collection
|--List 有序,可重複
|--ArrayList
底層數據結構是數組,查詢快,增刪慢。
線程不安全,效率高
|--Vector
底層數據結構是數組,查詢快,增刪慢。
線程安全,效率低
|--LinkedList
底層數據結構是鏈表,查詢慢,增刪快。
線程不安全,效率高
|--Set 無序,惟一
|--HashSet
底層數據結構是哈希表。
如何保證元素惟一性的呢?
依賴兩個方法:hashCode()和equals()
開發中自動生成這兩個方法便可
|--LinkedHashSet
底層數據結構是鏈表和哈希表
由鏈表保證元素有序
由哈希表保證元素惟一
|--TreeSet
底層數據結構是紅黑樹。
如何保證元素排序的呢?
天然排序
比較器排序
如何保證元素惟一性的呢?
根據比較的返回值是不是0來決定對象
Mapblog
|--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流)