list接口繼承與Collection接口,list集合中容許有重複的元素,全部的元素都是以一種線性的方式進行存儲的數組
list經過索引來訪問集合中的元素性能
list集合中的元素是存儲有序的spa
List接口繼承自Collection接口,因此list中有Collection接口中全部的方法code
list中特有的方法對象
public void add(int index,E element)
:將指定元素element添加到指定位置blog
public E get(int index)
:獲取指定索引位置上的元素繼承
public E remove(int index)
:移除列表中指定元素,返回的是被移除的元素索引
public E set(int index,E element)
:用指定元素替換集合中指定位置的元素,返回值是更新前的元素接口
1 public static void main(String[] args) { 2 List list = new ArrayList(); 3 list.add("熊大"); 4 list.add("熊二"); 5 list.add("熊小小"); 6 //將 熊老三添加到第三個元素 7 list.add(2,"熊老三"); 8 System.out.println(list);//熊老三 9 //獲取索引爲3的元素 10 Object o = list.get(3); 11 System.out.println(o);//熊小小 12 //移除熊老三 13 Object remove = list.remove(2); 14 System.out.println(remove);//熊老三 15 //用光頭強替換熊二 16 Object o1 = list.set(1, "光頭強"); 17 System.out.println(o1);//熊二 18 } 19 }
ArrayList
element
ArrayList集合數據存儲的結構是數組結構。元素增刪慢,查詢快。
LinkedList
LinkedList
是存儲結構是鏈表結構,元素增刪快,查詢相對來講慢一點。
public void addFirst(E e)
:將指定元素插入此列表的開頭。
public void addLast(E e)
:將指定元素添加到此列表的結尾。
public E getFirst()
:返回此列表的第一個元素。
public E getLast()
:返回此列表的最後一個元素。
public E removeFirst()
:移除並返回此列表的第一個元素。
public E removeLast()
:移除並返回此列表的最後一個元素。
public E pop()
:今後列表所表示的堆棧處彈出一個元素。
public void push(E e)
:將元素推入此列表所表示的堆棧。
public boolean isEmpty()
:若是列表不包含元素,則返回true
public static void main(String[] args) { LinkedList<String> list = new LinkedList(); //添加元素 list.addFirst("光頭強"); list.addFirst("吉吉國王"); list.addFirst("小猴子"); System.out.println(list);//小猴子, 吉吉國王, 光頭強 //獲取第一個元素 String first = list.getFirst(); System.out.println(first);//小猴子 //獲取最後一個元素 String last = list.getLast(); System.out.println(last);//光頭強 //刪除第一個元素 String removeFirst = list.removeFirst(); System.out.println(removeFirst);//小猴子 //刪除最後一個元素 String removeLast = list.removeLast(); System.out.println(removeLast);//光頭強 //判斷集合是否爲空 while (!list.isEmpty()){//判斷集合是否爲空 System.out.println(list.pop());//彈出集合中棧頂的元素---吉吉國王 } System.out.println(list);//[] }
set接口繼承於Collection接口,包含全部Collection接口的方法
set集合中存儲的元素無序
set集合中的元素是不可重複的
HashSet
集合
hashSet是set接口的一個子類,所存儲的元素是不能夠重複的,而且是無序的。
hashSet是根據對象的hash值來肯定元素存儲的位置,所以具備良好的存取和查找性能,保證元素惟一的方式是依賴於:hashcode()和equals( )方法
1 public static void main(String[] args) { 2 HashSet<String> set = new HashSet<>(); 3 set.add(new String("NBA")); 4 set.add("MLB"); 5 set.add("NBL"); 6 set.add("CBA"); 7 set.add("NBA"); 8 for (String s : set) { 9 System.out.println(s); 10 } 11 }
輸出結果,只有一個NBA:
MLB
CBA
NBL
NBA
HashSet集合存儲數據的結構(哈希表)
hashSet存儲原理
LinkedHashSet
hashSet
能夠保證元素不重複,可是元素的存取是無序的,爲了解決這個無序問題,咱們能夠纔去LinkedHashSet
來解決這個問題。
LinkedHashSet
是鏈表和哈希表組合的一個數據存儲結構
1 public static void main(String[] args) { 2 Set<String> set = new LinkedHashSet<>(); 3 set.add("MLB"); 4 set.add("NBL"); 5 set.add("CBA"); 6 set.add("NBA"); 7 for (String s : set) { 8 System.out.println(s); 9 } 10 } 11 12 輸出結果: 13 MLB 14 NBL 15 CBA 16 NBA
關與list,set的知識就先寫這麼多了,具體實際應用仍是但願你們靈活運用~~