由第一張圖,咱們能夠知道,Collection接口的子接口有三種,分別是List接口,Set接口和Queue接口數組
容許有重複的元素,元素按照添加的順序進行排序框架
接口方法性能
在集合的指定位置插入元素
返回集合中某個指定位置的元素
返回第一次出現該元素的索引(下標),若是不包含此元素,返回-1
返回最後一次出現該元素的索引(下標),若是不包含此元素,返回-1
移除集合某個索引的元素
用指定的元素替換集合中某個指定下標的數據元素
接口實現類的使用測試
ArrayList
新增方法:
addFirst
getFirst
removeFirst
addLast
getLast
removeLast
3d
特色:在存儲方式上是採用數組進行順序存儲code
List list = new ArrayList(); List<泛型> list = new ArrayList<>();
LinkedListblog
特色:在存儲方式上是採用鏈表進行鏈式存儲排序
LinkedList<> list = new LinkedList<>();
PS:因爲ArrayList是採用數組進行存儲的,因此添加元素或者是刪除元素時,須要批量移動元素,因此性能較差。但查詢元素的時候,能夠經過下標直接進行訪問,因此遍歷元素或隨機訪問元素的時候效率高。
而LinkedList與ArrayList相反繼承
若是想在list的迭代中操做list中的元素,例如刪除,添加,使用listiterator,listiterator有add,set,remove索引
List<Book> books = new ArrayList<>(); //添加數據 for (int i = 1; i < 10; i++) { Book book = new Book(); book.setBno("00" + i); books.add(book); } System.out.println(books.size()); //經過ListIterator在遍歷刪除數據 ListIterator<Book> bookListIterator = books.listIterator(); String bno = "002"; while (bookListIterator.hasNext()) { Book next = bookListIterator.next(); if (next.getBno().equals(bno)) { bookListIterator.remove(); break; } } //輸出結果測試 System.out.println("-----"); System.out.println(books.size()); for (Book book : books) { System.out.println(book.toString()); }
不容許有重複的元素,元素沒有順序
接口方法
add
clear
contains
remove
和以前的List差很少,這裏就很少說
HashSet
下面的圖片很明顯,體現了沒有重複元素的規則
**通常使用的話仍是使用泛型使用** Set<Book> books = new HashSet<>();
TreeSet
由以前介紹的第四張圖能夠看到,TreeSet既繼承了Set接口,也繼承了SortedSet接口(排序接口)
沒有使用泛型,默認使用的是String類型,String類實現了Comparable接口,默認是按字典排序,可是圖中明顯沒有實現排序?不理解。。
我使用英文開頭,才能實現排序
//Iterator Iterator iterator = set.iterator(); while (iterator.hasNext()){ System.out.println(iterator.next()); } //foreach for (String s:set) { System.out.println(s); }
較少使用。。
使用鍵值對(key value)進行數據存儲,key與value是一種映射關係
Object put(Object key,Object value)
將一個鍵值對存到Map中Object get(Object key)
由key得到valueObject remove(Object key)
刪除該鍵值對Set keyset()
返回當前包含當前map的全部key的Set集合Collection values()
返回當前包含當前map的全部value的Collection集合boolean containsKey(Object key)
是否包含某個keyboolean containsValue(Object Value)
是否包含某個Valueint size()
返回當前map集合鍵值對的個數接口實現類的使用
HashMap的使用
Map<String,String> map = new HashMap<>();
Map<Integer,String> map = new HashMap<>();
TreeMap的使用
Map<String,String> map = new TreeMap<>();
與以前的TreeSet同樣,TreeMap也是實現了SortedMap藉口,帶有排序,默認是按照key的數值天然排序(也就是升序)