Collection接口有两个重要的子接口:List,Set。
List接口的三个重要的实现类:LinkedList,ArrayList,Vector
Set接口两个重要的实现类:HashSet,TreeSet
1.Collection实现类,可以存放多个元素,每个元素可以是Object或子类
2.有些Collection实现类,可以存放重复的元素,有些不可以
3.有些Collection实现类,有些是有序的(List),有些是无序的(Set)
4.Collection接口没有直接实现类,是通过它的子接口Set和List来实现的
由于Collection接口无法实例化,要想使用Collection接口的方法我们就用Collection的实现子类ArrayList来演示它的常用方法
public static void main(String[] args) {
Collection collection = new ArrayList<>();
//add方法的使用
boolean b = collection.add("jack");
System.out.println(b);//输出结果:true
collection.add(10);
collection.add(true);
System.out.println("List="+collection);//输出结果:List=[jack, 10, true]
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//remove:方法的使用
//按照索引删除(索引不存在就报错)
Object o = list.remove(1);
System.out.println(o); //输出结果:10
//按照元素删除
boolean b = list.remove(true);
System.out.println(b);//输出结果:true
System.out.println("List="+list);//输出结果:List=[jack]
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//contains:方法的使用
boolean b = list.contains("jack");
System.out.println(b);//输出结果:true
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//size:方法的使用
int s = list.size();
System.out.println(s);//输出结果:3
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//isEmpty:方法的使用
boolean b = list.isEmpty();
System.out.println(b);//输出结果:false
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//clear:清空集合
list.clear();
System.out.println("List="+list);//输出结果:List=[]
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//addAll:方法的使用
List newList = new ArrayList<>();
newList.add("西游记");
newList.add("三国演绎");
boolean b = list.addAll(newList);
System.out.println(b);//输出结果:true
System.out.println("list="+list);//输出结果:list=[jack, 10, true, 西游记, 三国演绎]
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//containsAll:方法的使用
List newList = new ArrayList<>();
newList.add("jack");
newList.add(10);
boolean b = list.containsAll(newList);
System.out.println(b);//输出结果:true
}
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//removeAll:方法的使用
List newList = new ArrayList<>();
newList.add("jack");
newList.add(true);
boolean b = list.removeAll(newList);
System.out.println(b);
System.out.println("list="+list);
}
1).Iterator对象称为迭代器,主要用于遍历Collection集合中的元素
2).所有实现Collection接口的的集合类都有一个iterator()方法,用以返回一个实现Iterator接口
的对象,即可以返回一个迭代器
3).Iterator仅用于遍历集合,Iterator本身并不存放对象
1).通过Collection接口实现类的iterator()方法得到一集合的迭代器(Iterator)
Iterator iterator = list.iterator();
2).通过迭代器(Iterator)里的hasNext()方法判断集合是否有下一个元素,如果有返回true,否则返回false
while (iterator.hasNext()){
System.out.println(iterator.next());
}
3).通过迭代器(Iterator)里的next()方法返回指针下移后集合位置上的元素(next()方法作用是指针下移并且返回下移后集合位置上的元素)
4).原理图
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//使用迭代器遍历集合
//1.先得到list集合的迭代器(Iterator)
Iterator iterator = list.iterator();
//2.使用while循环遍历
while (iterator.hasNext()){
//3.返回下一个元素
Object o = iterator.next();
System.out.println(o);//遍历完最终输出结果为:jack 10 true
}
}
增强for循环可以代替Iteratro迭代器。
1).基本语法
for(元素类型 元素名:集合名或数组名){
访问元素
}
2).代码演示
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("jack");
list.add(10);
list.add(true);
//使用增强for循环遍历集合
for (Object o : list) {
System.out.println(o);
}
}
3).特点:曾强for循环就是简化版的Iterator迭代器,本质一样,只能用于遍历集合或数组(上述代码进行Debug)