Java核心API——Collection类

Collection类简介

* java集合框架
* java.util.Collection接口,是所有集合的顶级接口,规定了集合所必须的功能
* <p>
* 集合与数组一样,可以保存一组具有相同类型元素数据结构
* 并且提供了对于元素的维护操作(方法)。
* 集合有多种不同的数据结构可供日后开发选择使用,使得Java程序能够更加高效、安全地处理集合数据。

 两种集合

* Collection下面有很多细分的集合类
* 常见的两个子类别(下述两个也是接口):
* java.util.List:List代表的是可重复且有序的集合
* java.util.Set:Set代表的是不可重复的集合
//Collection c = new ArrayList();Collection c = new HashSet();/*boolean add(E e)集合提供了添加元素的方法,如果元素成功存入集合则返回true。*/boolean test = c.add("one");System.out.println(test);c.add("two");c.add("three");c.add("four");c.add("five");c.add("six");System.out.println(c);//对于HashSet而言,本次返回值就是false,没有存入集合test = c.add("one");System.out.println(test);System.out.println(c);int size= c.size();System.out.println("集合元素个数为:"+size);/*boolean isEmpty()    empty:空的判断当前集合是否为空集当且仅当size为0时,该方法返回true。*/boolean isEmpty= c.isEmpty();System.out.println("是否为空集:"+isEmpty);/*void clear()清空集合*/c.clear();System.out.println();System.out.println(c);System.out.println("是否为空集"+c.isEmpty());System.out.println("集合的元素个数"+c.size());

 集合常见方法

* 集合受元素equals影响的相关操作:
* contains判断包含
* remove删除元素

Point类 

public class Point {private int x;private int y;public Point(int x, int y) {this.x = x;this.y = y;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Point point = (Point) o;return x == point.x && y == point.y;}@Overridepublic int hashCode() {return Objects.hash(x, y);}@Overridepublic String toString() {return "(" +x +"," + y +')';}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}
}

 方法实例

 Collection c = new ArrayList();c.add(new Point(1, 2));c.add(new Point(3, 4));c.add(new Point(5, 6));c.add(new Point(7, 8));c.add(new Point(9, 10));c.add(new Point(11, 12));/*集合重写了toString,格式为:[元素1.toString(), 元素2.toString(), 元素3.toString(), ...]由此可见,想更直观的体现元素时,元素也需要妥善重写toString方法。*/System.out.println(c);Point p = new Point(1, 2);/*contains:包含boolean contains(Object o)判断当前集合是否包含给定元素,若包含则返回true,否则返回false这里判断包含的逻辑是:给定元素是否与集合现有元素存在equals比较为true的情况,如果有则认为包含该元素。否则为不包含。*/boolean contains = c.contains(p);System.out.println("是否包含:" + contains);/*boolean remove(Object o)删除当前集合中给定元素。删除的逻辑也是删除集合中与参数给定元素equals比较为true的元素。注意:如果集合存在重复元素,那么在删除重复元素时,remove方法仅会删除一次。*/c.remove(p);System.out.println(c);c.add(new Point(1,2));c.add(new Point(1,2));System.out.println(c);c.remove(p);System.out.println(c);
* 集合可以保存一组相同类型的元素。
* 但是集合只能存放【引用类型】元素,并且存放的是该引用类型对象的地址
        Collection c = new ArrayList();//c.add(123)等于c.add(Integer.valueOf(123))自动装箱Point p = new Point(1, 2);c.add(p);System.out.println("p:"+p);//p:(1,2)System.out.println("c:"+c);//c:[(1,2)]p.setX(2);//将p对象的属性x的值改为2System.out.println("p:"+p);//p:(2,2)System.out.println("c:"+c);//c:[(2 ,2)]
* 集合之间的操作

        //Collection c1 = new ArrayList();Collection c1 = new HashSet();//alt+enter(回车),辅助提示,可用于自动导包等操作c1.add("java");c1.add("c");c1.add("c++");System.out.println(c1);Collection c2 = new ArrayList();c2.add("android");c2.add("ios");c2.add("java");//c1存在的元素System.out.println(c2);/*boolean addAll(Collection c)将给定集合c中的所有元素添加到当前集合中。添加后当前集合元素发生了变化则返回true。*/c1.addAll(c2);//将c2的所有元素添加到c1中,取并集System.out.println(c1);Collection c3 = new ArrayList();c3.add("java");c3.add("android");//c3.add("php");System.out.println("c3:" + c3);/*boolean containsAll(Collection c)判断当前集合是否包含给定集合中的所有元素。全部包含则返回true,否则返回false*/boolean containsAll = c1.containsAll(c3);System.out.println("c1是否包含c3的所有元素:" + containsAll);/*取交集操作boolean retainAll(Collection c)仅保留当前集合中与给定集合c的共有元素。*/
//        c1.retainAll(c3);
//        System.out.println(c1);/*差集操作(删除交集部分)removeAll可以删除当前集合中与给定集合的公有元素*/c1.removeAll(c3);System.out.println(c1);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

千万罚单,稠州商业银行屡教不改?

撰稿|芋圆 来源|贝多财经 今年&#xff0c;浙江稠州商业银行&#xff08;以下简称“稠州商行”&#xff09;似乎进入了多事之秋&#xff0c;刚刚兼并两家经营不善的村镇银行就紧接着收到大额罚单。 该行在2023年的经营业绩不算难看。据2023年年报&#xff0c;稠州商行的业绩从…

PHP 调用 1688 详情 API 接口的实战攻略

在电商领域&#xff0c;获取准确和详细的商品信息对于业务的发展至关重要。1688 作为国内知名的批发采购平台&#xff0c;其详情 API 接口为开发者提供了丰富的数据资源。本文将为您详细介绍如何使用 PHP 调用 1688 详情 API 接口。 一、前期准备 注册 1688 开放平台账号&#…

L2TP(Client-initiated模式)over IPSEC远程拨号实验

一、实验目的及拓扑 实验目的&#xff1a;通过L2TP客户端与LNS服务端建立L2TP隧道并承载在IPSEC网络上。其中L2TPoverIPsec客户端采用windows软终端模式&#xff08;Cloud3&#xff09;&#xff0c;AR1上将内网LNS&#xff08;FW1&#xff09;服务器采用NAT方式向外网进行映射…

基于深度学习的水果识别系统

1. 引言 随着计算机视觉技术的快速发展&#xff0c;基于深度学习的水果识别系统在农业、超市等场景中具有广泛的应用前景。例如&#xff0c;在农业中&#xff0c;水果识别系统可以帮助农民自动分类和计数水果&#xff0c;从而提高效率并减少人工成本&#xff1b;在超市中&…

【机器学习】使用Python的dlib库实现人脸识别技术

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、引言二、传统人脸识别技术1. 基于几何特征的方法2. 基于模板匹配的方法3. 基于统计学习的方法 三、深度学习在脸识别中的应用1. 卷积神经网络&#xff08;CNN&#xff09;2. FaceNet和ArcFace 四、使用Python和dlib库实…

Spring1(开发工具安装及配置 初始Spring 解耦实现 SpringIOC SpringDI Spring常见面试题)

目录 一 、开发工具安装及配置 IDEA简介 安装 配置 常⽤快捷键 部署maven 1.配置环境​编辑 2.创建一个maven项目​编辑 选择maven​编辑​编辑 二、初始Spring Spring历史由来 Spring体系结构 Spring生态系统 三、解耦实现 jdbc 三层思想​编辑 四…

leetcode_26. 删除有序数组中的重复项

leetcode_26. 删除有序数组中的重复项 leetcode链接 题目描述 给你一个 非严格递增排列 的数组 nums &#xff0c;请你** 原地** 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums…

可视化剪辑,账号矩阵,视频分发,聚合私信一体化营销工具 源----代码开发部署方案

可视化剪辑&#xff1a; 为了实现可视化剪辑功能&#xff0c;可以使用流行的视频编辑软件或者开发自己的视频编辑工具。其中&#xff0c;通过设计用户友好的界面&#xff0c;用户可以简单地拖拽和放大缩小视频片段&#xff0c;剪辑出满足需求的视频。在开发过程中&#xff0c;可…

SQL进阶

目录 SQL索引 SQL索引 索引 作用帮助数据库管理系统高效获取数据的数据结构 数据处理分类 OLTP&#xff08;联机事务处理&#xff09;OLAP&#xff08;联机分析处理&#xff09;一般用于处理客户的事务和进行查询一般用于市场的数据分析&#xff08;数据量通常很大&#xff0…

JDK版本详解

Oracle JDK 和 OpenJDK 的对比 Oracle JDK版本将每三年发布一次&#xff0c;而OpenJDK版本每三个月发布一次&#xff1b;OpenJDK 是一个参考模型并且是完全开源的&#xff0c;而Oracle JDK是OpenJDK的一个实现&#xff0c;并不是完全开源的&#xff1b;Oracle JDK 比 OpenJDK …

多源字段聚合重塑算法

要求如下 [[{"oone": "评估是否聘请第三方机构","otwo": null,"othree": "test",},{"oone": "评估是否聘请第三方机构","otwo": null,"othree": "test",}],[{"oon…

python爬虫获取网易云音乐评论歌词以及歌曲地址

python爬虫获取网易云音乐评论歌词以及歌曲地址 一.寻找数据接口二.对负载分析三.寻找参数加密过程1.首先找到评论的请求包并找到发起程序2.寻找js加密的代码 四.扣取js的加密源码1.加密函数参数分析①.JSON.stringify(i0x)②bse6Y(["流泪", "强"])③bse6Y…

探索元宇宙:开启数字世界的奇妙之旅【小学生也能读懂】

元宇宙&#xff1a;数字新纪元的曙光 随着技术的飞速发展&#xff0c;我们正站在一个全新的数字时代的门槛上。元宇宙&#xff08;Metaverse&#xff09;&#xff0c;这个听起来充满未来感的词汇&#xff0c;已经成为科技界的热门话题。它不仅仅是一个概念&#xff0c;更是一个…

C语言——字符串两种声明初始化方式、输入输出及常见处理函数

C语言中的字符串是一个字符数组&#xff0c;它以空字符&#xff08;\0&#xff09;作为结束标志。这意味着字符串中的字符是连续存储在内存中的&#xff0c;而字符串的末尾会自动添加一个\0字符来表示字符串的结束。这种表示方式使得C语言在处理字符串时非常灵活&#xff0c;但…

第1关 -- Linux 基础知识

闯关任务 完成SSH连接与端口映射并运行hello_world.py ​​​​ 可选任务 1 将Linux基础命令在开发机上完成一遍 可选任务 2 使用 VSCODE 远程连接开发机并创建一个conda环境 创建新的虚拟环境lm3 可选任务 3 创建并运行test.sh文件 参考文档 文档&#xff1a;https://g…

【MySQL-19】一文带你了解存储函数

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

ROS2中间件

ROS2 是重新设计的 Robot Operating System&#xff0c;无论从用户API接口到底层实现都进行了改进。这里主要关注ROS2 的中间件。 1. 通信模式 ROS2 使用DDS协议进行数据传输&#xff0c;并通过抽象的rmw&#xff0c;支持多个厂家的DDS实现&#xff08;FastDDS&#xff0c;Cyc…

Python 和 R两者的主要区别和优缺点对比

有个问题&#xff0c;既然做模型调的还是python&#xff0c;那为啥很多人还用R呢&#xff1f; 这是一个很好的问题。Python 和 R 都是数据科学和统计分析领域中非常流行的编程语言&#xff0c;它们各有优缺点&#xff0c;选择哪种语言通常取决于具体的任务需求、个人或团队的技…

【链表】算法题(二) ----- 力扣/牛客

一、链表的回文结构 思路&#xff1a; 找到链表的中间节点&#xff0c;然后逆置链表的后半部分&#xff0c;再一一遍历链表的前半部分和后半部分&#xff0c;判断是是否为回文结构。 快慢指针找到链表的中间节点 slow指针指向的就是中间节点 逆置链表后半部分 逆置链表后半部分…

Java 如何实现单点登录案例详解

单点登录&#xff08;SSO&#xff09;是一种用户身份验证机制&#xff0c;允许用户在多个系统或应用程序中使用同一组登录凭据。从业务需求的角度来看&#xff0c;单点登录具有以下优势和必要性&#xff1a; 从业务需求的角度来看&#xff0c;单点登录具有以下优势和必要性&am…