存放数据的方式:Java集合框架

news2024/10/6 8:29:36

文章目录

    • 1. 目前存放数据的方式
    • 2. Java集合框架
    • 3. Collection接口常用方法解析
      • `public boolean add(E e)`
      • `public void clear()`
      • `public boolean remove(E e)`
      • `public boolean contains(E e)`
      • `public boolean isEmpty()`
      • `public int size()`
      • `public Object[] toArray()`
    • 4. 迭代器
    • 5. 增强for循环

在这里插入图片描述
在这里插入图片描述

1. 目前存放数据的方式

在Java编程中,我们经常需要存储和操作一组相关的数据。下面介绍了目前常见的数据存放方式。

  1. 变量:
    变量是最简单的数据存放方式,用于保存单个值或对象的引用。例如,可以使用一个int类型的变量来保存一个整数值,使用一个String类型的变量来保存一个字符串。

  2. 对象:
    对象是由多个相关联的数据组成的,它可以封装不同类型的数据,并提供对这些数据的操作方法。通过创建类和实例化对象,我们可以将多个数据结合在一起,形成一个自定义的数据类型。

  3. 数组:
    数组是用于存储多个相同类型的数据的集合。数组具有固定长度,一旦创建,其大小不能更改。它可以通过索引来访问其中的元素,索引从0开始。但是,数组的操作不够灵活,无法自动进行动态扩容。
    在这里插入图片描述

2. Java集合框架

Java提供了集合框架来处理存储多个元素的情况,集合框架分为单列集合和双列集合两类。

  1. 单列集合(Collection接口):
    单列集合是指每个元素单独存放的集合,常用的子接口包括ListSetQueueSortedSet

    • List: List是有序的集合,可以存储重复的元素。常见的实现类有ArrayListLinkedListVector

    • Set: Set是不允许重复元素的集合,保证元素的唯一性。常见的实现类有HashSetLinkedHashSet

    • Queue: Queue是一种先进先出(FIFO)的集合,通常用于实现队列数据结构。常见的实现类有PriorityQueueLinkedList

    • SortedSet: SortedSet是有序的Set集合,元素按照某种排序规则排列。常见的实现类有TreeSet

  2. 双列集合(Map接口):
    双列集合是指存放键值对的集合,其中每个键对应一个唯一的值。常见的实现类有HashMapLinkedHashMapTreeMap

在本文中,我们主要关注单列集合的使用。
在这里插入图片描述

3. Collection接口常用方法解析

public boolean add(E e)

将给定的对象添加到当前集合中。

public void clear()

清空集合中所有的元素。

public boolean remove(E e)

从当前集合中删除给定的对象。

public boolean contains(E e)

判断当前集合中是否包含给定的对象。

public boolean isEmpty()

判断当前集合是否为空。

public int size()

返回集合中元素的个数。

public Object[] toArray()

将集合中的元素存储到数组中。
在这里插入图片描述

4. 迭代器

迭代器是用于遍历集合中元素的对象,它提供了一种统一的遍历方式,不依赖于集合的具体实现。

public interface Iterator<E> {
    boolean hasNext(); // 问一问容器中还有没有元素
    E next(); // 获取到下一个元素
    void remove(); // 移除当前元素
}

迭代器的工作原理是,在调用next()方法之前,迭代器的索引位于第一个元素之前,不指向任何元素。当第一次调用next()方法后,迭代器的索引会向后移动一位,指向第一个元素并返回该元素的值。再次调用next()方法时,迭代器的索引会指向第二个元素并返回该元素的值,依此类推,直到hasNext()方法返回false,表示到达了集合的末尾,遍历结束。
在这里插入图片描述

5. 增强for循环

增强for循环是Java5引入的一种新循环结构,也称为foreach循环。它可以更简洁地遍历数组或集合中的元素,使代码更加易读。

for (元素的类型 元素的名称 : 需要遍历的容器) {
    // 执行遍历操作
}

需要注意的是,增强for循环不能在遍历过程中删除元素(使用remove方法),否则会抛出java.util.ConcurrentModificationException异常。如果需要在遍历过程中删除元素,应该使用迭代器方式进行删除。

增强for循环的底层实现其实是使用了迭代器,因此它也具有类似于迭代器的限制。

通过学习本文,您可以了解Java中目前常见的数据存放方式和集合框架的基本概念。同时,了解了集合接口和迭代器的常用方法以及增强for循环的特点和使用方法。希望本文对您有所帮助,欢迎留言交流!

在这里插入图片描述

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

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

相关文章

从零基础开始开发自己的第一个微信小程序

文章目录 内容介绍小程序开发步骤注册微信小程序账号下载开发工具搭建开发环境创建工程编写代码手机上查看效果 工程里的文件作用介绍总结 内容介绍 通过本篇blog&#xff0c;你可以熟悉从零开始&#xff0c;搭建小程序开发环境&#xff0c;并运行起自己的第一个小程序。 小程…

Stability AI旗舰图像模型 SDXL1.0发布,AI绘画进入新的时代

Stability AI于7月26号开源了SDXL1.0文生图模型&#xff0c;要知道距离SDXL0.9开源发布也不过一个月,只能说AI发展日新月异。 根据官网介绍&#xff0c;SDXL1.0经过迭代更新&#xff0c;已经是目前世界上最好的图像生成模型 官网根据Discord上的几代实验模型和外部测试&#…

股票量价关系分析

量增价平 量增价平是指成交量增加&#xff0c;股价保持相对平稳的量价关系模型&#xff0c;量的增加可以是资金大量流入引起&#xff0c;也可以是资金大量流出引起&#xff0c;因此这种关系模型需要根据股价所处的位置来具体分析。1、股价处于低位 当股价处于低位&#xff0c;此…

Unity之webgl端通过vue3接入腾讯云联络中心SDK

腾讯云联络中心SDK:云联络中心 Web-SDK 开发指南-文档中心-腾讯云 (tencent.com) 1 首先下载Demo ​ 1.1 对其进行解压 ​ 1.2根据文档操作 查看README.md,根据说明设置server下的dev.js里的相关参数。 然后打开电脑终端&#xff0c;cd到项目的路径&#xff1a; ​ 安装…

喜报 | 《中国AIOps现状调查报告(2023)》发布!擎创科技案例再度入选

&#xff08;本文部分内容来自《中国AIOps现状调查报告&#xff08;2023&#xff09;》&#xff0c;丝小编扣1&#xff0c;领取完整版报告&#xff09; 2023年7月18日&#xff0c;信通院Xops产业创新发展论坛于北京成功举办。大会旨在提高企业研发运营水平&#xff0c;加强XOp…

243. 一个简单的整数问题2(树状数组)

输入样例&#xff1a; 10 5 1 2 3 4 5 6 7 8 9 10 Q 4 4 Q 1 10 Q 2 4 C 3 6 3 Q 2 4输出样例&#xff1a; 4 55 9 15 解析&#xff1a; 一般树状数组都是单点修改、区间查询或者单点查询、区间修改。这道题都是区间操作。 1. 区间修改用数组数组维护差分数组 2. 区间查询&am…

实现弧形切角两种方式

1、css 的 radial-gradient <view style"padding:30px; background: #ccc;"><view class"navActive"></view> </view>.navActive{width: 200px;height: 40px;background-color: #fff;color: rgb(0,63,136);position: relative;bor…

windows环境下安装elasticsearch、kibana

通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候&#xff0c;要非常小心&#xff0c;因为100等于100、但是200不等于200&#xff0c;当然&#xff0c;如果你会一点小花招&#xff0c;也可以让100不等于100、让200等于200。(运算符比较…

优化供应链和库存管理:PDM系统的物料控制之道

在现代制造业中&#xff0c;优化供应链和库存管理是企业实现高效运营和降低成本的重要目标。PDM系统作为一款强大的数字化工具&#xff0c;扮演着物料控制之道的角色&#xff0c;帮助企业实现优化供应链和库存管理的目标。让我们一同深入探讨&#xff0c;看看PDM系统是如何通过…

git clone 登录 github

git clone 登录 github 目录概述需求&#xff1a; 设计思路实现思路分析1.github 设置setting2.输入passwd 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result…

mac切换jdk版本

查询mac已有版本 1、打开终端&#xff0c;输入&#xff1a; /usr/libexec/java_home -V注意&#xff1a;输入命令参数区分大小写(必须是-V) 2.目前本地装有两个版本的jdk xxxxedydeMacBook-Pro-9 ~ % /usr/libexec/java_home -V Matching Java Virtual Machines (2):20.0.1 (…

Cocos Creator不规则按钮

实现该功能需要用到组件PolygonCollider2D&#xff0c;官方链接&#xff1a; https://docs.cocos.com/creator/3.4/manual/zh/physics-2d/physics-2d-collider.html 创建组件 创建一个精灵节点&#xff1a; 创建碰撞组件PolygonColider2D&#xff0c;如图 给按钮添加多边形碰…

【Axure教程】移动端二级滑动选择器

今天教大家制作移动端二级滑动选择器的原型模板&#xff0c;该原型已全国一二级省市选择器为案例&#xff0c;因为该原型用中继器做的&#xff0c;所以制作完成之后使用也很方便&#xff0c;只需修改中继器表格里的内容即可 一、效果展示 1. 拖动选择 2. 快捷选择 【原型预览…

超全整理——116道网络安全工程师面试真题(附答案),建议收藏!

随着国家对网络安全的重视度&#xff0c;促使这个职业也变得炙手可热&#xff0c;越来越多的年轻人为进入安全领域在做准备。 数以百计的面试&#xff0c;为何迟迟无法顺利入职&#xff1f;能力无疑是至关重要的&#xff0c;可却有不少能力不比已入职的同事差却应聘失败的人&a…

vite babel 获取组件的 children 代码, 填写到 jsxCode 属性中

最终效果 <DocsModule title"类型"><Button>默认按钮</Button><Button type"primary">主要按钮</Button><Button type"success">成功按钮</Button><Button type"danger">危险按钮&l…

【Jmeter】 Report Dashboard 生成html图形测试报告

目录 背景 生成图形报告的方式 1、直接使用一个已存在的 CSV文件生成 2、负载测试完成后自动生成 使用示例 报告内容详情 测试报告摘要图 响应时间随时间变化曲线 活跃线程随时间变化曲线 I/O&#xff08;Bytes&#xff09;随时间变化曲线(忽略事务控制器示例结果) …

【阻止IE强制跳转到Edge浏览器】

由于微软开始限制用户使用Internet Explorer浏览网站&#xff0c;IE浏览器打开一些网页时会自动跳转到新版Edge浏览器&#xff0c;那应该怎么禁止跳转呢&#xff1f; 1、点击电脑左下角的“搜索框”或者按一下windows键。 2、输入“internet”&#xff0c;点击【Internet选项…

促进跨部门协作:PDM系统的多用户协同编辑

在现代企业中&#xff0c;跨部门协作是推动创新和高效工作的关键。PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;作为一款强大的数字化工具&#xff0c;提供了多用户协同编辑功能&#xff0c;有效促进了跨部门之间的协作与沟通。让我们一同…

学术简讯 | CN-Celeb-AV: 多场景视听多模态数据集发布

近日&#xff0c;清华大学语音和语言技术团队联合北京邮电大学发布了中国明星多场景音视频多模态数据集 (CN-Celeb-AV)&#xff0c;供音视频多模态身份识别 (AVPR) 等领域的研究者使用。本数据集包含来自1,136名中国明星&#xff0c;超过419,000个视频片段&#xff0c;涵盖11种…

SpringBoot搭建WebSocket初始化

1.java后端的maven添加websocket依赖 <!-- websocket依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>2.实例化ServerEndpointExport…