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方法@Overridepublic 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 增强forSystem.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());}
}

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

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

相关文章

【计算机毕设】springboot-家具销售电商平台(附源码)

摘 要 Abstracts 目 录 第1章 绪论 1.1课题背景 1.2研究意义 1.3研究内容 第2章 技术介绍 2 2.1相关技术 3 2.2 Java技术 3 2.3 MySQL数据库 4 2.4 Tomcat介绍 4 2.5 Spring Boot框架 5 第3章 需求分析 5 3.1需求分析概述 6 3.2可行性分析 6 3.2.1经济可行性 6 3.2.2技…

十二、血条UI

一、制作血条UI 注:一般不用Slider制作血条;而是用两个Image制作,选择为填充 使用Slider滑动条制作UI 人物血条:背景深绿色;滑条浅绿色 在场景中的画布选择为OverLay 敌人血条: 在预制体里面制作&#x…

VUE 开发——Vue学习(二)

一、watch侦听器 作用&#xff1a;监视数据变化&#xff0c;执行一些业务逻辑或异步操作 简单写法 <div id"app"><textarea v-model"words"></textarea></div><script>const app new Vue({el:#app,data: {words: },watch…

ai论文写作软件哪个好?分享5款ai论文题目生成器

在当前的学术研究和写作领域&#xff0c;AI论文写作软件已经成为提高效率和质量的重要工具。根据多个来源的评测和推荐&#xff0c;以下是五款值得推荐的AI论文写作软件&#xff0c;其中特别推荐千笔-AIPassPaper。 1. 千笔-AIPassPaper 千笔-AIPassPaper是一款基于深度学习和…

扭蛋机深受年轻人欢迎,线上扭蛋机小程序发展优势

近几年&#xff0c;扭蛋机一直处于高速发展阶段&#xff0c;市场发展前景逐渐扩大。扭蛋机的玩法可以激发年轻人追求刺激的心理&#xff0c;从而提高扭蛋机的吸引力。在扭蛋中带来的不确定性和刺激性&#xff0c;能够提高消费者的体验感&#xff0c;满足消费者的娱乐休闲需求&a…

Qt开发环境的搭建

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Qt开发环境的搭建 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. Qt开发工具概述 Qt…

【分立元件】案例:电感焊盘部分发黑原因有什么?

大家都知道正常的一体成型电感的PIN脚外观如下图所示: 其中要求对电极的验收要求可能有几个关注点,如:电极偏位、划痕、凸起、生锈、孔洞等。 但是在工作过程中,前段时间,有同事咨询电感来料焊盘存在发黑现象的原因是什么。 对于这方面其实我也不懂,但通…

通信工程学习:什么是RIP路由信息协议

RIP&#xff1a;路由信息协议 RIP&#xff08;Routing Information Protocol&#xff09;路由信息协议是一种基于距离矢量算法的内部网关协议&#xff08;IGP&#xff09;&#xff0c;主要用于在自治系统&#xff08;AS&#xff09;内部进行路由信息的交换和传播。以下是关于RI…

Base64字符串转图片在线工具

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 基本原理 Base64编码&#xff0c;作为一种将二进制数据转换为文本格式的方法&#xff0c;其核心在于利用64个可打印字符来表征任意的二进制信息。这一编码方式的出现&#…

一些零散的和编译相关的语法/flash-attn涉及语法扫盲

#pragma once&#xff1a;一个编译指令&#xff0c;用于防止头文件被多次包含。当编译器遇到#pragma once时&#xff0c;它会确保该头文件在一个编译单元&#xff08;一个.cpp文件及其包含的所有文件&#xff09;中只会被包含一次。即使该文件被间接包含多次&#xff0c;编译器…

用于图像识别的判别图正则化技术

本文所涉及所有资源均在 传知代码平台 可获取。 目录 论文概述 图正则化技术及其优点 算法流程 在标准BLS中嵌入判别图正则化的方法 模型整体架构 代码复现 图拉普拉斯矩阵的构建——generateLmatrix.py文件 复现模型整体架构——bls2deep_graph.py文件 顶层文件——GBLS.py文件…

Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND

Case1 : 表没有主键 show create table xxx desc table Case2 : 表是MEMORY表 show create table xxx desc table https://dev.mysql.com/doc/mysql-replication-excerpt/5.7/en/replication-features-memory.html

KDTS 实现MySQL至KingbaseES迁移实践

此文章以linux环境实践&#xff0c;KingbaseES一下使用KES代替。 KDTS KDTS工具安装KES时会一起安装&#xff0c;一般存在目录为&#xff1a;ClientTools目录下guitools文件夹中 启动 进入KDTS-WEB下bin目录&#xff0c;执行sh文件 cd /opt/Kingbase/ES/V8/ClientTools/guit…

70.【C语言】动态内存管理(重点)(3)

本文为数据结构打下基础 备注:数据结构需要掌握指针,结构体和动态内存管理 承接69.【C语言】动态内存管理(重点)(2)文章 目录 4.calloc函数 cplusplus网的翻译 提炼要点 使用 5.recalloc函数 使用说明 作用 调整内存空间的几种情况 1.原有空间之后有足够大的空间 …

自动猫砂盆是养猫新型智商税吗?测评2024年热门款智能猫砂盆分享

铲屎官们只要一察觉到猫主子拉屎&#xff0c;就要马上去铲掉&#xff0c;这不仅是为了猫砂盆中其他干净的猫砂&#xff0c;更是为了防止猫屎残留发臭&#xff0c;特别是便便这种东西&#xff0c;一旦放久了就很招虫子&#xff0c;家里出现这些虫子又要大扫除消杀&#xff0c;特…

使用Python接口自动化测试post请求和get请求,获取请求返回值

引言 我们在做python接口自动化测试时&#xff0c;接口的请求方法有get,post等&#xff1b;get和post请求传参&#xff0c;和获取接口响应数据的方法&#xff1b; 请求接口为Post时&#xff0c;传参方法 我们在使用python中requests库做接口测试时&#xff0c;在做post接口测试…

论文精读:基于概率教师学习的跨域自适应目标检测(ICML2022)

原文标题&#xff1a;Learning Domain Adaptive Object Detection with Probabilistic Teacher 中文标题&#xff1a;基于概率教师学习的域自适应目标检测 代码地址&#xff1a; GitHub - hikvision-research/ProbabilisticTeacher: An official implementation of ICML 2022 p…

计算机网络——ftp

在网络通信中&#xff0c;控制连接和数据连接是两种不同类型的连接&#xff0c;它们各自具有特定的功能和用途。 一、控制连接 定义与功能&#xff1a; 控制连接主要用于在通信双方之间传输控制信息&#xff0c;以建立、维护和终止数据连接。它负责协调和管理数据传输的过程&am…

图像数据增强库综述:10个强大图像增强工具对比与分析

在深度学习和计算机视觉领域&#xff0c;数据增强已成为提高模型性能和泛化能力的关键技术。本文旨在全面介绍当前广泛使用的图像数据增强库&#xff0c;分析其特点和适用场景&#xff0c;以辅助研究人员和开发者选择最适合其需求的工具。 数据增强的重要性 数据增强在深度学习…

架构设计笔记-7-系统架构设计基础知识

目录 知识要点 单选 案例分析 1.质量属性 / 管道过滤器 / 数据仓库风格 2.面向对象风格 / 控制环路风格 3.软件架构风格 / 架构风格选择 4.体系结构方案对比 5.面向对象风格 / 基于规则风格 6.解释器风格 / 管道过滤器风格 7.面向对象风格 / 解释器风格 8.软件架构复…