基本概念:
1)可以动态保存多个对象
2)提供了 一系列方法便的操作对象的方法;
3)使用集合添加删除元素的代码非常简洁。
一、集合框架图
1、集合主要分为单列机和和双列集合
2、Collection接口有两个重要的子接口,List和set,他们实现的子类都是单列集合
3、Map实现的子类是双列集合
二、Collection接口的常用方法
1、Collection接口常用方法:
1)add:添加元素
2)remove:删除指定元素
3)contains:查找元素是否存在
4)size:获取元素个数
5)isEmpty:判断是否为空
6)clear:清空
7)addAll:添加多个元素
8)containAll:查找多个元素是否都存在
9)removell:删除多个元素
2、Collection接口遍历元素的方式
使用Iterator迭代器
1)Iterator对象称之为迭代器,主要用于遍历Collection集合中的所有元素。
2)所有实现了Collection的接口的集合类都有一个iterator()方法,用于返回一个实现了Iterator接口的对象,即可以返回一个跌迭代器。
3)iterator的结构图
4)iterator仅用来遍历元素,本身并不是用来存储对象;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Teat13{
public static void main(String[] args) {
List list=new ArrayList();
list.add(new Book("Jack",12));
list.add(new Book("Tom",22));
list.add(new Book("Lala",32));
Iterator it=list.iterator();
while(it.hasNext()) {//判断集合内还有无数据
Object tmp=it.next();//将提取出的元素赋给tmp
System.out.println(tmp);
}
}
}
class Book{
private String name;
private int price;
public Book(String name, int price) {
super();
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Book [name=" + name + ", price=" + price + "]";
}
}
3、List接口
List接口常用方法
List接口中的sort方法
public class Test2 {
public static void main(String[] args) {
List list = new ArrayList();
list.add(new A2(99L, "zhangsan"));
list.add(new A2(77L, "lisi"));
list.add(new A2(99L, "wangwu"));
list.sort(new Comparator<A2>() {
public int compare(A2 o1, A2 o2) {
// 自定义比较规则,按照id从小到大,如果id相等则按照name从大到小
int res = o1.getId().compareTo(o2.getId());
if (res == 0)
res = (o1.getName().compareTo(o2.getName())) * -1;
return res;
}
});
list.forEach(System.out::println);
}
}
class A2 {
private Long id;
private String name;
public A2(Long id, String name) {
this.id = id;
this.name = name;
}
// ===================================
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "A2 [id=" + id + ", name=" + nam