1、集合的概述
- 集合是java提供的一种容器,可以存储多个数据,集合和数组都是容器,那么他们之间有什么区别呢?
- 数组的长度是固定的,集合的长度是可变的
- 数组中存储的是同一类型的元素,集合中存储的是对象,而且对象的类型可以不一致。
2、集合的框架
- list接口:有序(有序指存储和取出的顺序一样)的集合;允许存储重复的元素;有索引可以使用for循环遍历。Vector、ArrayList、LinkedList集合。
- set接口,不允许重复的元素,没有索引,不能用for循环遍历,有TreeSet集合,HashSet集合(LinkedHashSet集合继承于它),
- Collection接口,list接口和set接口继承于它,
单列集合最顶层的接口
3、ArrayList和HashList
- ArrayList:底层是数组实现的,查询快,增删慢
- HashList:底层是链表实现的,查询慢,增删快
4、HashSet和TreeSet和LinkedHashSet
- HashSet:底层是哈希表+红黑树实现的,无索引,不可重复存储,存取无序
- LinkedHashSet:底层是哈希表+链表实现的,可以保证元素的存取顺序
- TreeSet:底层是二叉树
5、Iterator迭代器的获取与使用
Iterator迭代器是一个接口,我们没法直接使用,需要使用Iterator接口的实现类对象
获取
: 获取Iterator接口的实现类的对象的方法:Collection接口有一个方法,iterator()返回的就是迭代器的实现类对象。获取后用Iteartor接口接受(多态)使用
:使用Iterator接口的方法hasNext()判断有没有下一个元素,使用next()取出下一个元素。- 迭代器的范型跟着接口走。
6、增强for循环替换迭代器
import java.util.ArrayList;
import java.util.List;
public class Test01 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
for(String a :list){
System.out.println(a);
}
}
}