一、集合Set与数组LIst
1、集合与数组的异同:
1)相同:集合和数组存储的内容都为Object对象
2)不同:数组长度固定,而集合长度可变,且容量每次以2倍扩充;
set中不能包含重复元素,list是一个有序集合,可包含重复元素。
2、集合的层次关系:
1、集合接口——Java.util.Collection
Collection接口为集合类中的根接口,该接口被继承后可产生两个接口,分别为Set和List
2、包装类——Java.util.Collections
二、set
1、“Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。”
2、分为:AbstractSet、HashSet、TreeSet
3、Set中有许多函数可供调用。
4、HashSet和TreeSet
1)不同:
TreeSet会将集合内的元素进行默认的排序。
HashSet可将equals()方法与hashCode配合使用来实现条件更完整的筛选.
三、list
1、“List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。”
2、AbstractList、HashList、TreeList
3、提供的输出方式:
1)for循环输出
for(int i=0;i<arr.size();i++){...}
2)for reach输出
for(int i:arr){...}
3)Iterator(迭代器)
Iterator it = arr.iterator(); while(it.hasNext()){ object o =it.next(); ...}
4、ArrayList与LinkedList
1)用法上相同
2)“LinkedList中插入元素很快,而ArrayList中插入元素很慢
LinkedList中顺序访问很慢,而ArrayList中顺序访问很快”
四、map
1、“Map集合中存储的是键值(类似数组下标)对(不可一对多,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。”