Java集合进阶 | Collection接口

本专栏主要是记录学习完本专栏主要是记录学习Java中的知识点,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏
JavaWeb:🔥JavaWeb
Java入门篇: 🔥Java基础学习篇
Java进阶学习篇(持续更新中):🔑Java进阶学习篇

在这里插入图片描述

一、前言

从本文开始会讲述集合进阶的相关知识点,本文主要是讲述单列集合的顶层接口Collection
在这里插入图片描述

二、概述

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的

1.List系列集合

添加的元素是有序、可重复、有索引

  • 有序:输入的顺序与输出顺序一致

  • 可重复:集合内元素可以相同,不报错

  • 有索引:通过索引获取集合内元素

2.Set系列集合

添加的元素是无序、不重复、无索引

  • 无序:输入的顺序与输出顺序不一致

  • 不重复:集合内元素不可以相同,否则报错

  • 无索引:不可通过索引获取集合内元素

三、具体方法

1.添加

public boolean add(E,e)

2.清空

public void clear

3.删除

public boolean remove(E,e)

4.判断是否包含

这个方法比较特殊,在 底层源码中是依赖equals方法判断 集合中是否存在某一个元素,所以 如果是自定义对象也想用该方法来判断是否包含的话,要在JavaBean中重写equals方法在下文中会具体介绍的

public boolean contains(Object obj)

5.判断是否为空

public boolean isEmpty()

6.集合长度

public int size()

四、具体实现

由于Collection是一个接口,所以我们不能直接创建它的对象,只能创建其实现类的对象(ArrayList)来实现这几个方法,所以在下面的实例中我new了一个ArrayList的对象来演示这些方法

package TestCollection;

import java.util.ArrayList;

public class demo1 {
    public static void main(String[] args) {
        ArrayList list1 = new ArrayList();


        //添加
        list1.add("111");
        list1.add("222");
        list1.add("333");
        System.out.println("list1:"+list1);

        //删除
        boolean b = list1.remove("111");
        System.out.println("判断是否成功删除:"+b);
        System.out.println("list1删除了111元素后的集合:"+list1);

        //长度
        int size = list1.size();
        System.out.println("此时list1的长度是:"+size);

        //判断是否包含
        boolean contains = list1.contains("111");
        System.out.println("list1是否包含元素111:"+contains);

        //清空
        list1.clear();
        System.out.println("清空后的集合:"+list1);

        //判断是否为空
        boolean empty = list1.isEmpty();
        System.out.println("此时list1是否为空:"+empty);
    }
}

输出结果

list1:[111, 222, 333]
判断是否成功删除:true
list1删除了111元素后的集合:[222, 333]
此时list1的长度是:2
list1是否包含元素111:false
清空后的集合:[]
此时list1是否为空:true

五、contains方法注意点

1.实例检验

这里我们先创建一个Person类,并定义成员属性为agename,再new几个Person类的对象来检验contains方法

在这里插入图片描述
结果是false,与我们设想的不一样

2.原理

如果没有重写equals方法,则默认使用Object类中的equals方法进行判断,而Object类中的equals方法是依赖地址值判断的,所以new了一个对象后地址值改变,方法返回值为false

3.解决方法

在JavaBean中重写equals方法:快捷键Alt+Insert选择equals()和hashCode()一路点击下一步即可一键生成,重写完了再执行以下刚刚的测试类结果就发生了改变

list2:[Person{name = 张三, age = 20}, Person{name = 李四, age = 21}, Person{name = 王五, age = 22}]
list2中是否包含姓名为张三,年龄为20的元素:true

六、结语

接下来会讲述迭代器相关知识,如果对文章内容有疑问可以直接评论留言

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
### 回答1: 往集合中添加元素可以使用Collection接口中的add()方法,该方法可以将指定的元素添加到集合的末尾。例如: List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("orange"); 上述代码创建了一个ArrayList集合,并向其中添加了三个元素。需要注意的是,如果添加的元素已经存在于集合中,那么add()方法不会将其重复添加。 ### 回答2: 在Java集合类中,Collection是一个接口,它是所有集合类的基础。Collection接口提供了许多有用的方法,如添加元素、删除元素、查找元素等。这里我们将重点讨论向集合中添加元素这一操作。 Collection接口提供了两个向集合中添加元素的方法:add()和addAll()。 add()方法: add()方法用于向集合中添加单个元素。该方法有以下两种形式: 1. boolean add(E e) 将指定元素添加到集合中。如果该集合不允许重复元素,则添加成功返回true,否则返回false。 2. void add(int index, E element) 将指定元素插入到集合的指定位置。如果该集合不支持这种操作,则抛出UnsupportedOperationException异常。 addAll()方法: addAll()方法用于向集合中添加多个元素。该方法有以下两种形式: 1. boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素添加到当前集合中。如果当前集合发生改变,则返回true,否则返回false。 2. boolean addAll(int index, Collection<? extends E> c) 从指定位置开始,将指定集合中的所有元素插入到当前集合中。如果当前集合发生改变,则返回true,否则返回false。 需要注意的是,当向集合中添加元素时,如果该集合不允许重复元素,则若添加了已存在的元素,则add()方法会返回false,addAll()方法会返回false并且只添加未存在于该集合中的元素。 总体而言,向集合中添加元素这一操作非常简便,只需调用add()或addAll()方法即可实现。而具体调用哪个方法,要根据要添加的元素数量和位置需求来确定。 ### 回答3: Java集合类是Java语言提供的一个重要工具,它们提供了一种方便管理和操作数据结构的方法。其中,Java集合框架包括了许多核心接口,其中之一是Collection接口CollectionJava集合框架的基础,所有集合都实现了该接口,因此了解该接口的使用方法对于操作Java集合非常重要,以下是对往集合中添加元素的详细解释。 在Java中,往集合中添加元素是一个非常普遍的行为。Collection接口定义了一组通用的添加元素的方法来满足这一需求。其中,最简单的方法是add(),可将一个新元素添加到集合末尾。该方法有以下两种形式: public boolean add(E e) public boolean addAll(Collection<? extends E> c) 第一种形式的add()方法是将单个元素添加到集合中,该方法返回一个boolean值,指示添加操作是否成功。第二种形式的addAll()方法是将一个集合中的所有元素添加到当前集合中。 除了add()和addAll()方法之外,Collection接口还提供了其他一些方法来添加新元素。例如,使用add(int index, E element)方法可以指定要添加的新元素的位置。还有,使用set(int index, E element)方法可以将指定位置上的元素替换为一个新元素。 此外,当使用LinkedList等特定类型的集合时,我们可以选择在开头或指定位置添加元素,如: offerFirst(E e) 在列表的开头插入指定的元素。 offerLast(E e) 在列表的结尾插入指定的元素。 addFirst(E e) 在列表的开头插入指定的元素。 addLast(E e) 在列表的结尾插入指定的元素。 push(E e) 在列表的开头插入指定的元素。 需要注意的是,当我们向集合中添加元素时,可能会出现以下几种情况: 1. 如果集合的实现不允许重复元素,则添加相同的元素将不会改变集合的大小。 2. 如果添加元素会导致集合大小超出容量,则会抛出OutOfMemoryError或类似的异常。 3. 如果集合使用的是泛型类型,则不能添加不合法的元素。 4. 如果我们使用迭代器遍历集合时对其进行修改,会抛出ConcurrentModificationException异常。 在一个及其庞大的项目中,了解Java集合类及其接口是至关重要的。 通过使用Java集合类,我们可以轻松管理各种数据结构,提高代码的可读性,使其更加灵活,可处理大量数据。了解如何添加元素是使用Java集合的基础,并且将有助于使用Java集合处理数据的所有方面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alita11101_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值