1:集合的概念,对象的容器,实现了对对象的操作,类似数组功能
2:集合与数组的区别
(1)数组的长度固定,集合的长度不固定
(2)数组可以存储基本类型和引用类型,集合只能存储引用类型
3:集合的作用
(1)在类的内部,对数据进行组织
(2)简单而快速的搜索大数量的条目
(3)有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关的元素
(4)有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以使任意类型
4:集合框架主要组成部分
5:Collection接口的使用
(1)集合的使用步骤
集合的使用步骤:
1、创建集合对象
2、创建元素对象
3、把元素添加到集合
4、遍历集合
a、通过集合对象获取迭代器
b、通过迭代器hasNext()方法判断是否有元素
c、通过迭代器对象的next()方法获取元素并移动到下一个位置
(2)Collection接口里定义了如下操作集合的方法:
1、boolean add(Object o):向集合里添加一个元素,成功添加则返回true。
2、boolean addAll(Collection c):把集合c里的所有元素添加到指定集合里,成功添加,返回true。
3、void clear():清除集合里的所有元素,将集合长度变为0。
5、boolean contains(Object o):判断集合中是否包含指定元素
6、boolean containsAll(Collection c):判断集合中是否包含集合c中的所有元素。
7、boolean isEmpty():判断集合是否为空。为空的时候返回true,否则返回false
8、boolean remove(Object o):删除集合中指定的o元素,当集合中含有多个o元素的时候,只删除第一个符合条件的元素,并将返回true
9、boolean removeAll(Collection c):从集合中删除集合c里包含的所有元素(相当于调用该方法的集合 - 集合c)
10、boolean retainAll(Collection c):从集合中删除集合c里不包含的元素(也就是把调用该方法的集合变成该集合和集合c的交集)(交集方法)。
11、int size():返回集合里元素的个数
12、Object[] toArray():该方法把一个集合转换为数组,所有的集合元素变成对应的数组元素
(3)接下来上实例
(1)先创建一个学生类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
*
* * 学生类
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Student {
private String name;
private Integer age;
// public Student() {
//
// }
//
// public Student(String name, Integer age) {
// this.name = name;
// this.age = age;
// }
//设置get、set方法
// public String getName() {
// return name;
// }
//
// public void setName(String name) {
// this.name = name;
// }
//
// public int getAge() {
// return age;
// }
//
// public void setAge(int age) {
// this.age = age;
// }
// @Override
// public String toString() {
// return "Student[ name=" + name + " , age=" + age + "]";
// }
}
(2)在来写Collection的使用方法
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
* Collection的使用:保存学生信息
*/
public class Demo1 {
public static void main(String[] args){
//新建Collection对象
// Collection collection = new ArrayList();
List<Student> list = new ArrayList<>(16);
Student s1=new Student("张三",20);
Student s2=new Student("李四",20);
Student s3=new Student("王五",20);
//添加数据
list.add(s1);
list.add(s2);
list.add(s3);
//遍历个数
System.out.println("元素个数:" + list.size());
System.out.println(list.toString());
//迭代器,迭代过程中不能使用Collection的删除方法
Iterator<Student> it = list.listIterator();
while (it.hasNext()) {
Student next = it.next();
System.out.println(next);
}
System.out.println("-----------------------------");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("-----------------------------");
//增强for
for (Student student : list) {
System.out.println(student);
}
System.out.println("-----------------------------");
list.forEach(System.out::println);
//Collection -> List 单列集合 ArrayList,LinkedList, Set: HashSet,TreeSet, ,Map HashMap TreeMap Vector
//删除
}
}
(3)运行结果
元素个数:3
[Student(name=张三, age=20), Student(name=李四, age=20), Student(name=王五, age=20)]
Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)
Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)
Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)
Student(name=张三, age=20)
Student(name=李四, age=20)
Student(name=王五, age=20)