?????List接口:有序的集合(存儲和取出元素相同);允許存儲重復的元素;有索引,可以使用普通的for循環(huán)遍歷。Vector集合、ArrayList集合、LinkedList集合。
? ? Set接口:不允許存儲重復的元素;沒有索引(不能使用普通的for循環(huán)遍歷)。Tree集合、HashSet集合。
Collection是所有單列集合的父接口,因此在Collection中定義了單列集合(List和Set)通用的一些方法,這些方法可用于操作所有的單列集合。方法如下:
* `public boolean add(E e)`:? 把給定的對象添加到當前集合中 。
* `public void clear()` :清空集合中所有的元素。
* `public boolean remove(E e)`: 把給定的對象在當前集合中刪除。
* `public boolean contains(E e)`: 判斷當前集合中是否包含給定的對象。
* `public boolean isEmpty()`: 判斷當前集合是否為空。
* `public int size()`: 返回集合中元素的個數(shù)。
* `public Object[] toArray()`: 把集合中的元素,存儲到數(shù)組中。
????Iterator迭代器
Iterator接口的常用方法如下:
* `public E next()`:返回迭代的下一個元素。
* `public boolean hasNext()`:如果仍有元素可以迭代,則返回 true。
????泛型
??在創(chuàng)建對象的時候確定泛型。
? ? 泛型通配符?,使用迭代器遍歷集合,it.next()方法,取出的是Object。
? ? 泛型的上限限定:?extends E,代表使用的泛型只能是E類型的子類/本身;泛型的下限限定:? super E,代表使用的泛型只能是E類型的父類/本身。
常見的數(shù)據(jù)結構
? ??棧:先進后出? ? 隊列:后進先出? ?鏈表:查找元素慢,增刪快
? ??二叉樹:binary tree ,是每個結點不超過2的有序樹(tree) 。紅黑樹本身就是一顆二叉查找樹,將節(jié)點插入后,該樹仍然是一顆二叉查找樹。也就意味著,樹的鍵值仍然是有序的。
紅黑樹(查詢速度非??欤┑募s束:
1.節(jié)點可以是紅色的或者黑色的2. 根節(jié)點是黑色的
3. 葉子節(jié)點(特指空節(jié)點)是黑色的
4. 每個紅色節(jié)點的子節(jié)點都是黑色的
5. 任何一個節(jié)點到其每一個葉子節(jié)點的所有路徑上黑色節(jié)點數(shù)相同
紅黑樹的特點:速度特別快,趨近平衡樹,查找葉子元素最少和最多次數(shù)不多于二倍
????java.util.ArrayList 集合數(shù)據(jù)存儲的結構是數(shù)組結構。元素增刪慢,查找快,由于日常開發(fā)中使用最多的功能為查詢數(shù)據(jù)、遍歷數(shù)據(jù),所以 ArrayList 是最常用的集合。java.util.LinkedList 集合數(shù)據(jù)存儲的結構是鏈表結構。方便元素添加、刪除的集合。
可變參數(shù):修飾符 返回值類型 方法名(參數(shù)類型... 形參名){ }
? ??