Iterable接口有foreach() 与iterator() 得到一个迭代器 Hasnext()是否有下一项(boolean),next()下一个 remove()
list与set 都是继承collection(java.util包下) ,collection是继承Iterable,map不是collection的子类
list 可重复,有顺序
set 不可重复,无序的
list有ArrayList 与 LinkedList 两个子类:
Arraylist:查询快
LinkedList: 增删改快
因为一般项目中是用到list中的查询,所以一般是用Arraylist,增删改是作用到数据库
不过购物车可以用LinkedList,因为这种增删改是作用于list
list与数组的区别:
容量大小:ArrayList是动态的,增加到一定量时会自动扩容
数组是固定不变的
装数据的类型:
数组:只能装一种数据类型
ArrayList :可以装不同的数据类型 (但一般我们是用泛类型,去让它装一种数据类型)
set 有 HashSet ,TreeSet和LinkedHashSet 三个子类:
HashSet 速度最快 集合元素可以为unll,但只能是一个
TreeSet 有排序
LinkedHashSet 有顺序
map是以键值对的形式存储数据,无序容器 ,容器长度也是动态的初始长度为16,负载因子0.75,以2的次方扩容
HashMap 速度最快(比HashSet还要快) 集合key元素可以为unll,但只能是一个,值可次有多个null
TreeMap有排序
LinkedHashMap 有顺序