Java入门基础学习笔记47——ArrayList
什么是集合呢?
集合是一种容器,用来装数据的,类似数组。
有数组,为什么还要学习集合呢?
数组定义完成并启动后,长度就固定了。

而集合是大小可变,开发中用的最多的。
集合的特点:大小可变,类型可以不固定,功能更加强大,适合做元素个数不能确定,同时存在增删改查的操作场景。
集合的种类非常多:

ArrayList该如何学呢?
1、会提供创建容器对象的方式;
2、会提供相应的方法对容器进行操作;
就是增删改查:
添加数据
删除某个数据
修改某个数据
获取某个数据
那么,1、创建对象; 2、增删改查的方法; 3、容器的其他特点


编程的时候使用第一个无参数构造器。
泛型:集合都是支持泛型的,约束集合在编译阶段只能操作某种数据类型。
注意:集合和泛型都不支持基本数据类型,只能支持引用数据类型。
注意:以后定义集合都应该支持泛型。
我的集合就是要什么都存:推荐这么写:
ArrayList<Object> list = new ArrayList();
ArrayList<E>
是用的最多的、最常见的一种集合。

代码:
package cn.ensource.arraylist;import java.util.ArrayList;/*** 目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法*/public class ArrayListDemo1 {public static void main(String[] args) {// 1. 创建ArrayList集合对象ArrayList list = new ArrayList();list.add("黑马");list.add(1);list.add(99.5);list.add("黑马");list.add("Java");System.out.println(list);}
}
运行结果:

打印容器的地址,而是直接去打印容器里的内容。
让集合约束存储的类型,只能存储某种类型的数据,这就是泛型:
package cn.ensource.arraylist;import java.util.ArrayList;/*** 目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法*/public class ArrayListDemo1 {public static void main(String[] args) {// 1. 创建ArrayList集合对象
// ArrayList<String> list = new ArrayList<String>();// 从jdk1.7开始支持的写法:ArrayList<String> list = new ArrayList<>();list.add("黑马");
// list.add(1);
// list.add(99.5);list.add("黑马");list.add("Java");System.out.println(list);}
}
ArrayList的常用方法示例:
package cn.ensource.arraylist;import java.util.ArrayList;/*** 目标:要求同学们掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法*/public class ArrayListDemo1 {public static void main(String[] args) {// 1. 创建ArrayList集合对象
// ArrayList<String> list = new ArrayList<String>();// 从jdk1.7开始支持的写法:ArrayList<String> list = new ArrayList<>();list.add("黑马");
// list.add(1);
// list.add(99.5);list.add("黑马");list.add("Java");System.out.println(list);// 2. 往集合中的某个索引位置处添加一个数据list.add(1, "MySQL");System.out.println(list);// 3. 获取某个索引位置的元素值String rs = list.get(1);System.out.println(rs);// 4. 返回集合的元素个数System.out.println(list.size());// 5. 删除指定索引处的元素,返回被删除的元素String rs2 = list.remove(1);System.out.println(rs2);System.out.println(list);// 6. 删除指定的元素,返回删除是否成功Boolean rs3 = list.remove("Java");System.out.println(rs3);System.out.println(list);// 添加一个数据list.add(1, "HTML");System.out.println(list);// 7. 如果删除黑马,则删除第一次出现的黑马被删除System.out.println(list.remove("黑马")); // true 删除成功System.out.println(list); // 第二个黑马没有被删除// 8. set方法,把某个索引的值进行替换list.set(0, "CentOS"); // 将HTML替换成CentOSString rs5 = list.set(1, "黑马程序员");System.out.println(rs5); // 打印被修改的元素System.out.println(list);}
}
再次说明:
==:
比较基本数据类型:比较具体的值。
比较引用数据类型:比较的是对象地址值。
equals:比较对象内容
equalsIgnoreCase: 比较内容忽略大小写
另外:
注意:集合容器中存储的是每个对象的什么东西?在堆内存中的地址。
相关文章:
Java入门基础学习笔记47——ArrayList
什么是集合呢? 集合是一种容器,用来装数据的,类似数组。 有数组,为什么还要学习集合呢? 数组定义完成并启动后,长度就固定了。 而集合是大小可变,开发中用的最多的。 集合的特点:大…...
案例题(第二版)
案例题目 信息系统架构设计 基本概念 信息系统架构(ISA)是对某一特定内容里的信息进行统筹、规划、设计、安排等一系列的有机处理的活动。特点如下 架构是对系统的抽象,它通过描述元素、元素的外部可见属性及元素之间的关系来反映这种抽象…...
基于python向量机算法的数据分析与预测
3.1 数据来源信息 该数据集来源于Kaggle网站,数据集中包含了罗平菜籽油的销售数据,每行数据对应一条记录,记录了罗平菜籽油销售数据。其中,菜籽产量、菜籽价格和菜籽油价格是数值型数据,共2486条数据。 通过读取Exce…...
传输层 --- UDP
一、简述与回顾 传输层:负责数据能够从发送端传输接收端 在TCP/IP协议中,我们用"源IP","源端口号","目的IP","目的端口号",和"协议号"来表示一个通信。…...
图书管理系统(Java版本)
文章目录 前言要求1.设置对象1.1.图书1.2.书架2.管理员3.功能的实现 2.搭建框架2.1.登录(login)2.2.菜单2.3.操作方法的获取 3.操作方法的实现3.1.退出系统(ExitOperation)3.2.显示图书(ShowOperation)3.3.查阅图书(FindOperation)3.4.新增图书(AddOperation)3.5.借出图书(Borr…...
全同态加密生态项目盘点:FHE技术的崛起以及应用
撰文:Chris,Techub News 在当今数字化的时代,隐私保护已成为一个全球性的焦点话题,特别是在加密货币和区块链技术快速发展的背景下。虽然当前的隐私技术在保护数据安全方面多有欠缺,引发了广泛的关注和批评,…...
山脉数组的峰顶索引 ---- 二分查找
题目链接 题目: 分析: 我们很明显, 可以从峰值位置将数组分成两段, 具有"二段性", 所以可以用二分查找因为arr是山峰数组, 不存在相等的情况如果arr[mid] > arr[mid 1], 说明mid的位置可能是峰值, 移动right mid如果arr[mid] < arr[mid 1], 说明mid的位置…...
【简单介绍下7-Zip,什么是7-Zip?】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
SCSS基本使用:构建高效、可维护的CSS架构
SCSS基本使用:构建高效、可维护的CSS架构 SCSS(Sassy CSS)是一个流行的CSS预处理器,它扩展了CSS的功能,提供了变量、嵌套规则、混合(Mixins)、函数等强大的编程特性,使得开发者能够编…...
allegro 无法删除Xnet
allegro 无法删除Xnet Orcad中打开Constraint Manager之后,再生成网表,导入PCB后就会出现一堆Xnet网络。无法去除Xnet。 解决办法 在原理图ORCAD中, 1、打开Edit Object properties 2、选择Filter by:Capture 3、点击New Property 4、设置…...
2024年甘肃特岗教师招聘报名流程,速速查收哦!
2024年甘肃特岗教师招聘报名流程,速速查收哦!...
【错误解决】使用HuggingFaceInstructEmbeddings时的一个错误
起因:使用huggingface构建一个问答程序时出现的问题。 错误内容: 分析: 查看代码发现,HuggingFaceInstructEmbeddings和sentence-transformers模块版本不兼容导致。 可以明显看到方法参数不同。 解决: 安装sentenc…...
C++中的四种类型转换运算符
隐式类型转换是安全的,显式类型转换是有风险的,C语言之所以增加强制类型转换的语法,就是为了强调风险,让程序员意识到自己在做什么。但是,这种强调风险的方式还是比较粗放,粒度比较大,它并没有表…...
k8s 1.28.10 浏览器访问6443查看api,需要证书
添加证书 使用client-certificate-data和client-key-data生成一个p12文件 1.生成client-certificate-data grep client-certificate-data ~/.kube/config | head -n 1 | awk {print $2} | base64 -d >> kubecfg.crt2.生成client-key-data grep client-key-data ~/.kub…...
新火种AI|复旦团队在“冷冻人脑”领域获得重大进展!人工智能是否会对此形成助力?
在低温医学领域,“冷冻人脑”技术的研究和突破既是重点,也是难点。因为这项技术关乎着人类是否可以取得一个令人瞩目的突破——人类的生命是否能够得到延续。 早几年,诸如“利用人体冷冻技术将身患绝症的病人保存十几年,几十年…...
echarts 散点图修改散点图中图形形状颜色大小
话不多说,直接上代码 let option {color:[xxx, xxx, xxx, xxx], //直接设置color可修改图形颜色title: {text: 散点图图形,},tooltip: {trigger: axis,axisPointer: {type: cross}},legend: {top: 2,right:2,itemWidth: 10,itemHeight: 10,textStyle:{fontSize:14}…...
SpringBoot3.x + JDK21 整合 Mybatis-Plus
前言 SpringBoot3.0 开始最低要求 Java 17,虽然目前最新的版本为 JDK22,但是在官网上看到 JDK23 在今年9月又要发布了,感觉这 JDK 也有点太过于给力了 所以我们选择用目前的 LTS 版本 JDK21 就好了,不用追求最新的 springboot 版…...
Java类和对象(五)—— 抽象类、接口、Object类和内部类
抽象类 在继承体系下,父类有些方法可能是要被重写的,如果我们事先就知道某些方法需要重写的话,我们可以不用在父类里面具体实现这个方法,这时候我们会用到抽象方法,这时候我们会用到关键字abstract关键字来修饰 publ…...
图像上下文学习|多模态基础模型中的多镜头情境学习
【原文】众所周知,大型语言模型在小样本上下文学习(ICL)方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口,为探索其执行 ICL 的能力提供了机会,并提供了更多演示示例。在这项工作中,我…...
汇编:函数以及函数参数传递
汇编语言中的函数(或过程)是指一段可以被调用和执行的代码块;它们用于组织和重用代码,并使程序结构更加清晰;由于汇编语言没有高层次语言的语法糖,编写和调用函数涉及直接的堆栈操作和寄存器管理࿱…...
提升vue开发效率的秘诀,快马平台一键生成通用组件库
最近在重构公司的中后台管理系统时,发现很多重复性的工作占用了大量开发时间。经过实践总结,我发现通过合理封装通用组件和工具集,可以显著提升Vue3项目的开发效率。今天就来分享下我的实战经验。 通用表格组件的封装 这个组件基于Element Pl…...
Kubernetes与存储管理最佳实践
Kubernetes与存储管理最佳实践 1. Kubernetes存储模型 Kubernetes存储模型定义了如何在容器化环境中管理和使用存储资源,是集群存储管理的基础。 1.1 存储模型核心概念 Volume:Pod中的存储卷,可被多个容器共享PersistentVolume (PV)ÿ…...
OpenClaw性能调优:Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF长文本处理技巧
OpenClaw性能调优:Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF长文本处理技巧 1. 为什么需要长文本优化 上周我尝试用OpenClaw处理一份200页的技术文档摘要任务时,遭遇了典型的"长文本困境"——模型要么漏掉关键段落,要么生…...
革新性STL文件管理工具:让3D模型预览效率提升80%的Windows解决方案
革新性STL文件管理工具:让3D模型预览效率提升80%的Windows解决方案 【免费下载链接】STL-thumbnail Shellextension for Windows File Explorer to show STL thumbnails 项目地址: https://gitcode.com/gh_mirrors/st/STL-thumbnail 问题发现:3D设…...
Paperless-ng多语言文档管理终极指南:如何实现国际化支持的完整解决方案
Paperless-ng多语言文档管理终极指南:如何实现国际化支持的完整解决方案 【免费下载链接】paperless-ng A supercharged version of paperless: scan, index and archive all your physical documents 项目地址: https://gitcode.com/gh_mirrors/pa/paperless-ng …...
QMK Toolbox终极指南:从零开始掌握键盘固件刷写的完整教程
QMK Toolbox终极指南:从零开始掌握键盘固件刷写的完整教程 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox是机械键盘爱好者的必备神器,这款开源工具集…...
面试复盘(Debrief)的艺术:挂了面试不可怕,如何通过感谢信获取真实Feedback并为下次“埋伏笔”?
在2026年竞争极其激烈的北美科技求职市场中,即使是背景最优秀的候选人,也必然会经历面试失败。在工业界的招聘漏斗中,由于技术栈匹配度、团队预算(Headcount)变动或单纯的竞争者过强,收到拒信(R…...
RabbitMQ 3.13.0实战:5分钟搞定MQTT 5.0协议配置与特性测试(附Docker命令)
RabbitMQ 3.13.0实战:5分钟搞定MQTT 5.0协议配置与特性测试(附Docker命令) 物联网开发者们,好消息!RabbitMQ 3.13.0正式支持MQTT 5.0协议了。作为消息中间件的标杆产品,这次更新让RabbitMQ在物联网领域的竞…...
别再只用Arduino了!用ESP32+TSW-30浑浊度传感器做个智能鱼缸水质监测器(附完整代码)
ESP32TSW-30浑浊度传感器打造智能鱼缸水质监测系统 养鱼爱好者都知道,水质是鱼类健康生长的关键因素。传统的人工检测方式不仅费时费力,还难以做到实时监控。今天我们就来动手打造一个基于ESP32和TSW-30浑浊度传感器的智能鱼缸水质监测系统,让…...
千问3.5-2B多场景落地:教育答题辅助、医疗报告图解、工业设备图识别实战分享
千问3.5-2B多场景落地:教育答题辅助、医疗报告图解、工业设备图识别实战分享 1. 引言:视觉语言模型的新应用 在数字化浪潮中,视觉语言模型正悄然改变着多个行业的运作方式。千问3.5-2B作为Qwen系列的小型视觉语言模型,凭借其图片…...
