Java Collection接口

01 Collection体系

1.Collection是父接口,List和Set是子接口,用于实现父接口。接口不能被实例化,因为接口没有构造方法。

2.第三行和第四行的class就是这些接口的实现类

02 Collection父接口

1.特点:代表一组任意类型的对象、无序、无下标不能重复

2.Collection父接口中的方法:

3.在API中学习集合的详细信息,具体的方法参数和返回值:

3.实例代码1

package com.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * Collection接口的使用
 * (1)添加元素
 * (2)删除元素
 * (3)遍历元素
 * (4)判断
 */
public class Demo01 {
    public static void main(String[] args) {
        //创建集合:接口不能被实例化,只能用接口的实现类来实例化
        Collection c = new ArrayList();
       //(1)添加元素
        c.add("苹果");
        c.add("西瓜");
        c.add("榴莲");
        System.out.println("元素个数为:" + c.size());
        System.out.println(c);
        //(2)删除元素
        c.remove("榴莲");
        System.out.println("元素个数为:" + c.size());
//        c.clear();  //清空元素
//        System.out.println(c);
        //(3)遍历元素【重点】
        //方法1:使用增强for循环。不能使用for,因为for需要下标,collection无下标
        System.out.println("-------方法1 使用增强for---------");
        for (Object o : c) {
            System.out.println(o);
        }
        //方法2:使用迭代器(专门用来遍历集合的一种方式),包含三种方法:
        /*
        hasnext();有无下个元素
        next();获取下个元素
        remove();删除当前元素
         */
        System.out.println("-------方法2 使用迭代器---------");
        Iterator it = c.iterator(); //需要调用集合的iterator()方法,返回值为Iterator接口类型。
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        /*
        使用迭代器过程中(while循环里),不能用Collection的remove()方法删除元素。会出现并发错误异常。
        在迭代后可以使用Collection的remove()方法删除元素;也可以使用迭代器的remove()删除当前元素
         */
        it.remove();
        System.out.println(c);

        //(4)判断
        System.out.println(c.contains("苹果"));
        System.out.println(c.isEmpty());
    }
}

4.实例代码2:新建一个Demo02和学生类

Student类:

package com.collection;

public class Student {
    private String name;
    private int age;

    //添加构造方法 都是使用alt+enter快捷键
    public Student() {
        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;
    }

    //重写toString方法
    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + "]";
    }
}

Demo02:

package com.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * Collection的使用:保存学生信息
 */
public class Demo02 {
    public static void main(String[] args) {
        //新建对象 多态:Collection类型的,实际是ArrayList类型的
        Collection c = new ArrayList();
        //new三个学生对象
        Student s1 = new Student();
        s1.setName("张三");
        s1.setAge(20);
        Student s2 = new Student();
        s2.setName("李四");
        s2.setAge(18);
        Student s3 = new Student();
        s3.setName("王五");
        s3.setAge(22);
        //1添加数据
        c.add(s1);
        c.add(s2);
        c.add(s3);
        System.out.println("元素个数:" + c.size());
        System.out.println(c.toString());   //如果不重写toString方法,打印出是哈希值
        //2删除
        c.remove(s1);
//        c.clear();
        System.out.println("删除之后:" + c.toString());
        //3遍历
        //3.1 增强for
        System.out.println("---------增强for---------");
        for (Object o : c) {
            System.out.println(o);
        }
        //3.2迭代器
        System.out.println("---------迭代器---------");
        Iterator it = c.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }

        //4判断
        System.out.println(c.contains(s1));
        System.out.println(c.isEmpty());


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值