一、集合类概述
作用:面向对象语言对事物的体现都是以对象的形式,集合类方便对多个对象进行存取操作。
注意:集合类和数组虽然同属于容器,集合可以存储对象,但是长度是固定的,集合的长度可以改变。数组可以存储基本数据类型,集合只能存储对象类型(类类型)。
二、Collection接口
- 常用方法:
注意:Collection是接口,无法直接创建对象,需要使用它的子类对象ArrayList
示例:
Collection list=new ArrayList();
//添加元素的方法,返回true或false
System.out.println(list.add("yyy"));
System.out.println(list.add("wtc"));
System.out.println("打印集合"+list);
//返回集合的长度
System.out.println(list.size());
//删除指定元素,返回true或false
list.remove("yyy");
//判断是否包含指定元素,返回true或false
System.out.println(list.contains("wtc"));
//清空集合
list.clear();
//判断集合是否为空,返回true或false
System.out.println(list.isEmpty());
运行结果:
- 集合批量操作方法
示例:
Collection list1=new ArrayList();
list1.add("111");
list1.add("222");
Collection list2=new ArrayList();
list2.add("aaa");
list2.add("bbb");
list2.add("111");
Collection list3=new ArrayList();
list3.add("aaa");
//判断list2中是否包含list3中的所有元素
System.out.println(list2.containsAll(list3));
//移除交集
list2.removeAll(list1);
System.out.println("list2"+list2);
//只留下交集
list3.retainAll(list2);
System.out.println("list3"+list3);
//把list2中的元素全部添加到list1中
list1.addAll(list2);
System.out.println("list1"+list1);
运行结果:
- Collection遍历方式
Collection list=new ArrayList();
list.add("yyy");
list.add("wtc");
//第一种使用数组
Object[] os=list.toArray();
for(int i=0;i<os.length;i++)
System.out.println(os[i]);
//第二种使用迭代器
Iterator it =list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//第三种使用增强for
for(Object o:list)
System.out.println(o);
运行结果:
三、List接口
概述:List所代表的是有序的Collection,即它用某种特定的插入顺序来"维护元素顺序"。可以对列表中每个元素的插入位置进行精 确控制,也可以根据索引访问元素,并搜索元素。
- 常用操作方法:
示例:
List list=new ArrayList();
list.add("yyy");
list.add("wtc");
//list特有的方法
list.add(0,"abc");
//获取指定下标的元素
Object o=list.get(0);
System.out.println(o);
//移除指定下标的元素,返回被删除的元素
list.remove(0);
//设置指定元素下标的值
list.set(0,"yw");
System.out.println(list);
运行结果:
- List遍历方法
List list=new ArrayList();
list.add("yyy");
list.add("wtc");
/*第一种使用迭代器进行遍历*/
//获取到迭代器
ListIterator it=list.listIterator();
System.out.println("向后遍历:");
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println("向前遍历:");
while(it.hasPrevious()){
System.out.println(it.previous());
}
/*第二种用增强for*/
for(Object o:list){
System.out.println(o);
}
/*第三种for循环*/
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
运行结果:
- 迭代器修改
List list=new ArrayList();
list.add("yyy");
list.add("wtc");
ListIterator it=list.listIterator();
while(it.hasNext()){
Object o=it.next();
if(o.equals("yyy"))
it.add("❤");
//list.add("❤");运行时会报错
}
System.out.println(list);
运行结果: