由第一张图,咱们能够知道,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的数值天然排序(也就是升序)