Collection体系、ArrayList、 LinkedList
1.集合的概念:对象的容器,实现了对对象的操作,类似数组功能
2.集合和数组的区别
(1):数组长度固定,集合长度不固定
(2):数组可以存储基本类型和引用类型,集合只能存储引用类型
Collection体系
1.Collection父接口
1.特点:代表一组任意类型的对象,无序、无下标、不能重复
2.创建集合:
Collection collecion = new ArrayList();
3.常用方法:
(1).添加元素:collection.add();
(2).删除元素:collection.remove(); 删除
collection.clear(); 清空
(3).遍历元素(重点)
- 使用增强for循环(因为没有下标)
for(Object object : collection){}
- 使用迭代器
hasNext();有没有下一个元素
next();获取下一个元素
remove();删除当前元素
注意:在迭代过程中是不允许使用collection的删除方法的,比如collection.remove(); 会报并发修改异常。可以使用it.remove();来删除完元素。
(4).判断
collection.contains();是否包含,返回true或者false
collection.isEmpty();是否为空
public class Demo09 {
public static void main(String[] args) {
//创建集合
Collection collection = new ArrayList();
//添加元素
collection.add("apple");
collection.add("peach");
System.out.println("元素个数:"+collection.size()); //元素个数:2
System.out.println(collection); //[apple, peach]
//删除元素
// collection.remove("apple");
// System.out.println(collection); //[peach]
// collection.clear();
// System.out.println("删除之后:"+collection.size()); //删除之后:0
//遍历元素的两种方法
//1.使用增强for
for (Object object:collection) {
System.out.println(object);
}
//2.使用迭代器
Iterator it = collection.iterator();
while (it.hasNext()){
String s = (String) it.next(); //强制转换
System.out.println(s);
}
}
}
运行结果:
元素个数:2
[apple, peach]
apple
peach
apple
peach
2.List子接口
(1)特点:有序、有下标、元素可以重复
(2)创建集合对象:
List list = new ArrayList<>();
(3)常用方法
- 添加元素:list.add(); 会对基本类型自动装箱
- 删除元素:可以用索引 list.remove(); 当删除数字与索引矛盾时,(因为删除的是下标,不是数字,容易引发数组下标越界)。对数字强制转换:list.remove(Object()10) 或list.remove(new Integer)
- 遍历
- 使用for循环
- 使用增强for
- 使用迭代器
- 使用列表迭代器(注意和迭代器的区别)
- 获取元素位置:list.indexOf();
- 返回子集合:sublist(x,y); 左闭右开 List subList = list.subList(1,3); 返回索引1、2