携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情
概述:
- 是单例集合的顶层接口,他表示一组对象,这些对象也成为Collection的元素\
- JDK不提供此接口的任何直接实现,他提供更具体的子接口(如Set和List)实现
创建Collection集合的对象
- 多态的方式\
- 具体的实现类ArrayList
1 public class Demo1 {
2 public static void main(String[] args) {
3 Collection<String> list = new ArrayList<>();
4 list.add("hello");
5 list.add("world");
6 list.add("java");
7 System.out.println(list);
8 }
9 }
集合的常用方法:
注:add方法永远返回true
1 public class Demo2 {
2 public static void main(String[] args) {
3 Collection<String> c = new ArrayList<String>();
4 c.add("hello");
5 c.add("world");
6 c.add("java");
7 System.out.println(c.remove("java"));
8 c.remove("javaee");
9 System.out.println(c.contains("hello"));
10 System.out.println(c.isEmpty());
11 System.out.println(c.size());
12 c.clear();
13 System.out.println(c);
14 }
15 }
Collection集合的遍历
Iterator:迭代器,集合的专用遍历方式
- Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
- 迭代器是通过集合的iterator()方法得到的,所以我们是他是依赖于集合而存在的
Iterator中的常用方法
- E next():返回迭代中的下一个元素
- boolean hasNext():如果迭代具有更多元素,则返回true
1 public class IteratorTest {
2 public static void main(String[] args) {
3 Collection<String> c = new ArrayList<String>();
4 c.add("hello");
5 c.add("world");
6 c.add("java");
7
8 Iterator<String> it = c.iterator();
9 // String s = it.next();
10 // System.out.println(s);
11 while (it.hasNext()){
12 String s1 = it.next();
13 System.out.println(s1);
14 }
15 }
16 }
练习:存储3个学生并遍历
1 //学生类
2 public class Student {
3 private String name;
4 private int age;
5
6 public Student(String name, int age) {
7 this.name = name;
8 this.age = age;
9 }
10
11 public Student() {
12 }
13
14 public String getName() {
15 return name;
16 }
17
18 public void setName(String name) {
19 this.name = name;
20 }
21
22 public int getAge() {
23 return age;
24 }
25 public void setAge(int age) {
27 this.age = age;
28 }
29
30 public void show() {
31 System.out.println("学生的姓名:" + name + " 学生的年龄:" + age);
32 }
33 }
34
35
36 //测试类
37 public class CollectionTest {
38 public static void main(String[] args) {
39 Scanner sc1 = new Scanner(System.in);
40 System.out.println("请输入要添加学生的数目:");
41 int num = sc1.nextInt();
42 Collection<Student> students = addStudent(num);
43 System.out.println(students);
44 bianli(students);
45 }
46 //添加学生对象,2个明确:参数:输入要添加的学生个数;返回值:返回collection集合?
47 public static Collection<Student> addStudent(int num){
48 Collection<Student> students = new ArrayList<>();
49 Scanner sc = new Scanner(System.in);
50 for(int i = 0;i<num;i++){
51 System.out.println("请输入添加的学生的姓名:");
52 String name = sc.nextLine();
53 System.out.println("请输入添加的学生的年龄:");
54 int age = sc.nextInt();
55 Student s = new Student(name, age);
56 students.add(s);
57 }
58 return students;
59 }
60
61 //遍历学生的collection集合,2个明确:参数,传入collection;返回值:不需要
62 public static void bianli(Collection<Student> s){
63 Iterator<Student> iterator = s.iterator();
64 while (iterator.hasNext()){
65 Student student = iterator.next();
66 student.show();
67 }
68 }
69 }