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: 比较内容忽略大小写

另外:

注意:集合容器中存储的是每个对象的什么东西?在堆内存中的地址。

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

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

相关文章

改进rust代码的35种具体方法-类型(十九)-避免使用反射

上一篇文章 从其他语言来到Rust的程序员通常习惯于将反思作为工具箱中的工具。他们可能会浪费很多时间试图在Rust中实现基于反射的设计&#xff0c;却发现他们所尝试的事情只能做得不好&#xff0c;如果有的话。这个项目希望通过描述Rust在反思方面做什么和不做什么&#xff0c…

【chagpt】广泛使用API之前:考虑成本和数据隐私

文章目录 一. 定价和标记限制二. 安全和隐私 在广泛使用API之前&#xff0c;应该考虑两个重要因素&#xff1a;成本和数据隐私。 一. 定价和标记限制 OpenAI在Pricing页面上列出了模型的定价。请注意&#xff0c;OpenAI不一定及时更新该页面上的定价信息&#xff0c;因此实际…

华为OD机试【计算最接近的数】(java)(100分)

1、题目描述 给定一个数组X和正整数K&#xff0c;请找出使表达式X[i] - X[i1] … - X[i K 1]&#xff0c;结果最接近于数组中位数的下标i&#xff0c;如果有多个i满足条件&#xff0c;请返回最大的i。 其中&#xff0c;数组中位数&#xff1a;长度为N的数组&#xff0c;按照元…

Pyinstaller打包exe文件解决指南

打包命令 打包 Python 文件 输入如下格式的命令即可 默认命令 Pyinstaller 文件名.py Pyinstaller -option1 -option2 -... 要打包的文件 Pyinstaller 文件名.pyPyinstaller -option1 -option2 -... 要打包的文件 参数选项比较多&#xff0c;这里我列一个表&#xff1a;…

element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入!

解决方案&#xff1a; 我是form表单嵌套表格&#xff0c;里面的el-input输入框&#xff0c;输入第一个值的时候会突然失去焦点&#xff0c;需要再次点击输入框才能正常输入&#xff0c;原因是table的key值&#xff0c;需要改成正常的index即可&#xff0c;如果你是循环的&…

讯方·智汇云校助力多所高校斩获华为ICT大赛2023-2024全球总决赛佳绩

2024年5月26日&#xff0c;华为ICT大赛2023-2024全球总决赛闭幕式暨颁奖典礼在深圳举行。讯方技术14所合作院校的18支队伍在此次大赛中荣获系列大奖。 本届大赛为华为历届最大规模的线下比赛&#xff0c;共吸引了全球80多个国家和地区、2000多所院校、17万余名学生报名参赛&am…

【前端学习笔记】HTML基础

HTML 一、HTML介绍1.HTML概念2.文档声明3.字符编码4. HTML标签5. HTML属性 二、标签1.meta标签2.语义标签3.布局标签4.列表5.超链接6.图片7.字符实体8.内联格式9.HTML 表格10.HTML 表单 三、HTML5新特性1. 本地存储2. Cookie3. 语义化标签4.多媒体元素5.表单增强6.Canvas7.SVG …

PHP开发入门

PHP官网&#xff1a;PHP: Hypertext Preprocessor apache官网&#xff1a;https://httpd.apache.org/ 一、搭建PHP环境 下载apache 进入官网点击download 选择下载windows版本文件 点击进入下载界面 点击下载64位版本文件 下载后解压文件 解压文件后进入 D:\httpd-2.4.59-24…

力扣232. 用栈实现队列(两栈实现队列)

Problem: 232. 用栈实现队列 文章目录 题目描述思路Code 题目描述 思路 利用两个栈&#xff0c;一个入栈一个出栈搭配着实现队列的相关操作&#xff1a; 1.创建两个栈stack1和stack2&#xff1b; 2.void push(int x):将要入队的元素先入栈stack1&#xff1b; 3.int pop()&…

Springboot集成GRPC

Springboot集成GRPC 一、springboot版本二、GRPC的pom依赖2.1 服务端2.2 客户端3.构建依赖 三、配置文件服务端客户端 四、 demo4.1 编写proto文件4.2 生成文件4.3 服务端重写方法4.4 客户端调用该方法 五、测试 一、springboot版本 <groupId>org.springframework.boot&l…

【Linux】Linux的权限_2 + Linux环境基础开发工具_1

文章目录 三、权限3. Linux权限管理修改文件的拥有者和所属组 4. 文件的类型5. 权限掩码 四、Linux环境基础开发工具1. yumyum 工具的使用 未完待续 三、权限 3. Linux权限管理 修改文件的拥有者和所属组 在上一节我们讲到如何更改文件的访问权限&#xff0c;那我们需要更改…

Unity 自定义Web GL 发布模板

前言 使用讯飞语音识别时&#xff0c;发布Web GL 平台后需要在index.html 中添加相应的script 标签&#xff0c;但每次发布完添加比较麻烦&#xff0c;添加一个发布模板就可以不必每次发布完再手动添加修改。 实现 在Assets 文件夹下新建一个文件夹&#xff0c;重命名为WebG…

rocketmq 学习二 基本概念

教程&#xff1a;基本概念 | RocketMQ 视频教程 https://www.bilibili.com/video/BV1d5411y7UW?vd_sourcef1bd3b5218c30adf0a002c8c937e0a27 版本&#xff1a;5.0 一 基本概念 1.1 生产者/Producer 1.1.1 定义 消息发布者。是构建并传输消息到服务端的运行实体。…

module ‘plotting‘ has no attribute ‘EpisodeStats‘

plotting.py 的版本不同&#xff0c;可以使用下列版本 reinforcement-learning/lib/plotting.py at master dennybritz/reinforcement-learning GitHubImplementation of Reinforcement Learning Algorithms. Python, OpenAI Gym, Tensorflow. Exercises and Solutions to a…

go语言,golang,linux,unbantu安装

查看系统是arm还是amd uname -m 命令可以显示系统的架构类型&#xff1a; uname -m输出可能是&#xff1a; x86_64&#xff1a;表示是 AMD64 架构&#xff08;即 64 位的 x86 架构&#xff09;。aarch64&#xff1a;表示是 ARM64 架构&#xff08;即 64 位的 ARM架构&#xf…

WORD、PPT技巧

WORD技巧 编辑设置 word标题导航窗口怎么调出word2016&#xff0c;缩小了页面&#xff0c;可是怎么是竖着的一页一页排列啊&#xff1f;以前不是好几页横排着的么&#xff1f;怎么设置&#xff0c;求救&#xff1a;在Word标题栏那一行找到“视图”&#xff0c;点击“显示比例…

【漏洞复现】用友NC registerServlet JNDI 远程代码执行漏洞(XVE-2024-10248)

0x01 产品简介 用友NC是 用友软件股份有限公司开发的一套企业级管理软件系统。它是一个基于互联网的多层应用系统&#xff0c;旨在为中大型企业提供全面、集成的管理解决方案。是一种商业级的企业资源规划云平台&#xff0c;为企业提供全面的管理解决方案&#xff0c;包括财务…

【InternLM实战营第二期笔记】03:“茴香豆“,搭建你的 RAG 智能助理(未完成)

文章目录 笔记-RAG课程结构为什么要用 RAG&#xff1f;定义工作原理向量数据库RAG 工作流程发展历程常见优化RAG vs 微调LLM 优化方法比较RAG的评价总结 笔记-茴香豆什么是茴香豆茴香豆实战 笔记-RAG 课程结构 为什么要用 RAG&#xff1f; 新增知识&#xff0c;尤其是高频变动…

AI视频换脸!最快的方法,100%成功,完全免费,无需配置、打开即用

这是一款百分百完全免费&#xff0c;超级好用又简单的AI视频换脸工具&#xff0c;不仅效果非常不错而且支持CPU和GPU解码&#xff0c;即使电脑上没有独立显卡&#xff0c;你也可以通过电脑上的CPU要进解码&#xff0c;虽然我之前给他介绍好几个有关AI视频&#xff0c;比如像这个…

FreeRtos进阶——消息队列的操作逻辑

消息队列&#xff08;queue&#xff09; 在不同的任务之间&#xff0c;如果我们需要互相之间通信&#xff0c;使用全局变量进行通信&#xff0c;是一种不安全的通信的方式。为保证线程安全&#xff0c;我们需要引入消息队列的通信方式。 粗暴的消息队列 为保证线程的安全&am…