集合之Collection!!!

本文详细介绍了Java集合框架中的Collection接口,包括其特点、继承体系、常用方法如添加、删除、判断和获取元素的方法。同时,文章还探讨了迭代器的使用,解释了为何迭代器设计为接口而非类,以及toArray()方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合的出现

我们面向对象语言都是以对象的形式出现的,所以为了对多个对象进行操作,Java就提供了集合类。

集合和数组的区别

长度不同
数组:长度固定
集合:长度不固定
内容不同
数组:存储的相同数据类型
集合:可以存储不同数据类型
类型不同
数组:可以存储基本数据类型和引用类型
集合:只能存储引用类型。

集合的特点

集合只用于存储对象,它的长度是可变的,并且可以存储不同类型的对象。

集合继承体系

在这里插入图片描述

Collection

概述: Collection是集合层次中的根接口。集合表示一组对象的容器,这些对象由重复的,有不重复的,有有序的,有无序的。

1、添加方法

boolean add(Object e):给集合添加元素
boolean addAll(Object e):将一个集合添加到另外一个集合中。

2、删除方法

void clear():清除集合中所有元素
boolean remove(Object o):从该集合删除指定元素。如果存在返回true,如果不存在返回false。
boolean removeAll(Collection<?> c):从该集合中删除指定指定集合的元素。调用方法的集合发生改变,如果元素删除就返回true,没有就返回false。

3、判断方法

boolean contains(Object o):该集合是否包含指定元素。存在返回true,不存在返回false,不对集合进行操作。
boolean containsAll(Collection<?> c):是否包含指定集合所有元素。集合不发生改变,只有调用者全包含指定集合,才返回true。
boolean isEmpty():判断集合是否为空,有元素则false,没有元素则true。

4、获取长度方法

int size():获取集合长度
面试题: 数组没有length方法,集合有没有length()方法,字符串有没有length()方法。

5、获取元素的方法

Iterator iterator():通过迭代器来获取元素

Object[] toArray():返回包含此集合所有元素的数组。
retainAll():求交集,如果调用者集合没有发生改变,则返回false,否则返回true。

package org.wdzl.unit05;

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

public class CollectionDemo {
    public static void main(String[] args) {
        //创建集合对象
        Collection c = new ArrayList();
        //添加元素
//        System.out.println("add:"+c.add("hello"));
        c.add("hello");
        c.add("world");
        c.add("java");
        //删除元素
//        c.clear();
//        System.out.println("remove:"+c.remove("hello"));
//        System.out.println("remove:"+c.remove("hello2"));
        //判断
//        System.out.println("contains : "+c.contains("hello"));
//        System.out.println("contains : "+c.contains("hello2"));
//        System.out.println("isEmpty : "+c.isEmpty());
//        c.clear();
//        System.out.println("isEmpty :"+c.isEmpty());
        //获取集合长度
//        System.out.println("size : "+c.size());
        System.out.println("c:"+c);//说明重写toString方法
    }
}

集合使用的步骤

1、创建集合对象
2、创建元素对象
3、给集合添加元素
4、遍历元素并使用

迭代器的使用

package org.wdzl.unit05;

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

public class IteratorDemo2 {
    public static void main(String[] args) {
        Collection collection = new ArrayList();

        Student s1 = new Student("张三",15);
        Student s2 = new Student("李四",16);
        Student s3 = new Student("王五",17);
        collection.add(s1);
        collection.add(s2);
        collection.add(s3);
        //遍历集合并使用
        Iterator iterator = collection.iterator();
        while (iterator.hasNext()){
            Student student = (Student) iterator.next();
            System.out.println(student);
        }
    }
}

迭代器的图解

迭代器概述: 它是集合的专用遍历工具
迭代器是基于集合存在的。
在这里插入图片描述
为什么我们的迭代器定义成一个接口,而不是一个类呢?
假如我们的迭代器定义成一个类,是不是类中的方法都是写死了,但是我们的集合又有多种类型,所以如果迭代器设计成类就不合理了。
为了针对不同集合的遍历,具体的实现都卸载子类实现中。

toArray的使用

package org.wdzl.unit05;

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

/**
 * toArray()将集合转成数组
 * 我的需求:是需要遍历集合
 */
public class CollectionDemo3 {
    public static void main(String[] args) {
        Collection collection = new ArrayList();
        collection.add("hello");
        collection.add("world");
        collection.add("java");

        //定义Object数组接收集合的转化
        Object[] objects = collection.toArray();
        for (int i =0 ; i< objects.length;i++){
            //加入我还需要获取字符串长度
//            System.out.println(objects[i]);
            //向下转型
            String s = (String) objects[i];
            System.out.println(s+"---------"+s.length());

        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值