- Collection集合
- 集合是java中提供的一种容器,可以用来存储多个数据
- 与数组的区别
- 数组的长度是固定的,集合的长度是可变的
- 数组中存储的是同一类型的元素,可以存储基本数据类型值;集合存储的都是对象,而且对象的类型可以不一致。
- 集合框架
- 集合
- Vector
- ArrayList:底层是数组实现的,查询快,删除慢
- LinkedList:底层是链表实现的,查询慢,删除快
- TreeSet:底层是二叉树实现的,一般用于排序
- HashSet:底层是哈希表+红黑树实现的,无索引、不可以存储重复元素、存取无序
- LinkedHashSet:底层是哈希表+链表实现的,无索引、不可以存储重复元素、存取无序
- 使用集合
- 会使用集合存储数据
- 会遍历集合,把数据取出来
- 掌握每种集合的特性
- 接口
- List接口(Vector,ArrayList,LinkedList)
- 有序的集合(存储和取出元素的顺序相同)
- 允许存储重复的元素
- 有索引,可以使用普遍的for循环遍历
- Set接口(TreeSet,HashSet,LinkedHashSet)
- 不允许存储重复元素
- 没有索引(不能使用普通的for循环遍历)
- Collection接口
- 定义的是所有单列集合中共性的方法
- 所有的单列集合都可以使用共性的方法
- 没有带索引的方法
- List接口(Vector,ArrayList,LinkedList)
- 集合
- 常用方法
- boolean add(E e)添加元素
- boolean remove(E e)删除集合中的元素
- void clear()清空集合中所有的元素
- boolean contains(E e)判断集合中是否包含某个元素
- boolean isEmpty(E e)判断集合是否为空
- int size()获取集合的长度
- Object[] toArray()
- Iterator接口(迭代器)
- 迭代:Collection集合元素的通用获取方式。在取元素之前判断集合中有没有元素
- hasNext() 如果仍有元素可以迭代,则返回true
- next()返回迭代的下一个元素
- 是一个接口,无法直接使用,需要Iterater接口的实现类对象
- Collection接口中有一个方法叫iterater(),这个方法返回的就是迭代器的实现类对象
- 使用步骤
- 使用集合中的方法iterater()获取迭代器的实现类对象,使用Iterater接口接收(多态)
- 使用Iterater接口中的方法hasNext判断还有没有下一个元素
- 使用Iterater接口中的方法next取出下一个元素‘
- 本质是指针移动
- 迭代:Collection集合元素的通用获取方式。在取元素之前判断集合中有没有元素
- 增强for循环:for(数据类型 变量名;容器对象){}
- 泛型
- 泛型是一种未知的数据类型
- 可以看作是一个变量,用来接受数据类型
- 创建集合对象的时候,就会确定泛型的数据类型;会把数据类型作为参数传递
- 弊端:泛型是什么类型,只能存储什么类型
- 定义与使用
- 将数据类型改为泛型