一、集合
定义:可以将不同数据类型的数据集中在一个容器中,该容器被称为集合
Collection接口:
Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。
JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。
1、add(E e):往集合中添加元素
2、addAll(Collection c):往集合中添加另外一个集合中的所有元素
3、clear():清空集合中所有元素
4、contains();判断集合中是否包含指定的元素
5、iSEmpty();判断集合是否为空
6、remove();删除集合中的指定元素
7、size();获取集合中元素的个数
8、toArray();将集合转为数组
备注:contains和remove方法底层实现都是通过equals()来实现
9、iterator();返回集合迭代的迭代器
A、迭代器:专门用来遍历集合的,能够将集合中的元素一一获取出来
提供了三个方法:
a.hasNext();判断集合中是否还有元素可以迭代,有返回true
b.next();返回迭代的下一个元素
c.remove();迭代器提供删除迭代元素的方法,在这里用集合中的remove()方法是删除不了元素的,必须使用迭代器提供的remove();
B、另外一个能够遍历集合的方式,增强for循环 (只能遍历,不能做其他操作)
语法:for(集合或数组的类型 引用:要遍历的集合或数组){
输出语句
}
Collection接口的常用子接口为List Set
Map接口不属于Collection子接口
二、Collection接口的子接口 List 接口-
List集合:
1、允许重复元素存在
2、允许多个null元素存在
3、有序的Collection
两个实现类 ArrayList LinkedList
List集合的容器:
ArrayList:底层是用数组实现的,适合做查找操作
LinkedList:底层是用链表实现的,适合做插入和修改操作
备注:项目开发过程中,一般使用ArrayList集合,如果项目对插入和修改要求比较高,则用LinkedList。
List集合和数组之间进行互换:
所有的集合只有List集合可以和数组互换。
数组转集合:Arrays类提供的asList()方法;
备注:数组转为集合后,集合的大小不能变化,因为数组的大小确定好之后是不能发生改变的,可以使用List有参构造方法来处理这个问题。List list1= new ArrayList<>(list);
集合转数组:List接口提供的toArray()方法
练习:
创建集合[1,2,3,4,5,6,7,8,9]
将其中的4~7扩大10倍