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替换成CentOS
        String rs5 = list.set(1, "黑马程序员");
        System.out.println(rs5);      // 打印被修改的元素
        System.out.println(list);

    }
}

再次说明:

==:

比较基本数据类型:比较具体的值。

比较引用数据类型:比较的是对象地址值。

equals:比较对象内容

equalsIgnoreCase: 比较内容忽略大小写

另外:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WSL调用docker

WSL&#xff08;windows subsystem linux&#xff09;是window系统的原生linux子系统&#xff0c;用于代码开发很方便。 希望在wsl里面运行docker&#xff0c;首先要安装docker在WSL中使用&#xff0c;大部分人的第一想法肯定是用以下命令行安装&#xff08;个人不推荐&#x…

Log360:护航安全,远离暗网风险

暗网有时候就像是一个神秘的地下世界&#xff0c;是互联网的隐蔽角落&#xff0c;没有任何规则。这是一个被盗数据交易、网络犯罪分子策划下一步攻击的地方。但仅仅因为它黑暗&#xff0c;不意味着你要对潜在的威胁视而不见。 暗网 这就是ManageEngine Log360的用武之地&…

Wireshark 4.2.5:发现 QUIC 和 VXLAN 协议的新功能

Wireshark 是一种先进且广泛使用的网络协议分析仪&#xff0c;最近发布了新版本 4.2.5&#xff0c;它提供了许多新功能和改进。 Wireshark 4.2.5 发行说明 什么是 Wireshark&#xff1f; Wireshark 是世界上最流行的网络协议分析器。它用于故障排除、分析、开发和教育。 Wiresh…

小短片创作-组装场景(一)

1、项目基础设置 通过第三人称模板&#xff0c;创建1个项目 1.自动曝光&#xff1a;关闭&#xff0c;因为要做专业的小短片&#xff0c;曝光需要手动控制。 2.扩展自动曝光中的默认亮度范围&#xff1a;启用 3.全局光照系统&#xff1a;选择屏幕空间光照&#xff08;SSGI&am…

react antd中transfer穿梭框组件中清除搜索框内容

如图&#xff1a;需要清除search搜索框内容 antd的transfer穿梭框组件未提供入口修改input框的值。 2种方法修改。 1、直接操作dom元素设置值&#xff08;不推荐&#xff09; useEffect(() > {const searchInput document.querySelector(.ant-transfer-list-search input)…

【ai】chatgpt的plugin已经废弃

发现找不到按钮,原来是要申请: https://openai.com/index/chatgpt-plugins/ 发现申请已经跳转了,好像是废弃了? 不接受新插件了,但是openai的api 是可以继续用的。 https://openai.com/waitlist/plugins/We are no longer accepting new Plugins, builders can now create…

数据意外删除?安卓手机数据恢复教程来帮你解救

手机不仅仅是一个通讯工具&#xff0c;更是我们记录生活、工作、学习等各种信息的重要载体&#xff0c;无论是拍照、录音、录像&#xff0c;还是文字记录&#xff0c;手机都能轻松完成。可有时候我们会不小心删除一些重要的数据&#xff0c;这时候我们该怎么办呢&#xff1f;别…

plsql 学习

过程化编程语言 赋值&#xff1a;&#xff1a; ||&#xff1a;连接符号 dbms_output.put_line() :输出的语句 var_name ACCOUNTLIBRARY.USERNAME%type; 变量名&#xff1b;某个表的数据类型&#xff1b;赋值给变量名 用下面的方法更好用 异常exception 循…

Windows 7 SP1 安装VMtools -- 安装失败的解决方法

VMware安装Win7 SP1可以参考这篇文章&#xff1a;https://blog.csdn.net/2301_77225571/article/details/139121179?spm1001.2014.3001.5501 1.下载补丁 https://www.catalog.update.microsoft.com/search.aspx?qkb4474419 2.本机远控Win7 【Win】【R】&#xff0c;输入cmd…

2024年甘肃特岗教师招聘报名流程,速速查收哦!

2024年甘肃特岗教师招聘报名流程&#xff0c;速速查收哦&#xff01;

基于灰狼优化算法优化支持向量机(GWO-SVM)时序预测

代码原理及流程 基于灰狼优化算法优化支持向量机&#xff08;GWO-SVM&#xff09;的时序预测代码的原理和流程如下&#xff1a; 1. **数据准备**&#xff1a;准备时序预测的数据集&#xff0c;将数据集按照时间顺序划分为训练集和测试集。 2. **初始化灰狼群体和SVM模型参数…

架构二。。

1、CAP 只能3选2 1&#xff09;一致性&#xff08;Consistency&#xff09; 客户每次读都是返回最新的写操作结果 2&#xff09;可用性&#xff08;Availability&#xff09; 非故障节点在合理的时间内返回合理的响应 3&#xff09;分区容忍性&#xff08;Partition Tolerance…

代码随想录学习Day 36

46.携带研究材料 题目链接 讲解链接 动规五部曲&#xff1a; 1.dp数组及其下标含义&#xff1a;dp[i][j] 表示从下标为[0-i]的物品里任意取&#xff0c;放进容量为j的背包&#xff0c;价值总和最大是多少。如图所示&#xff1a; 2.确定递推公式&#xff1a; 从物品i是否放进…

MobaXterm:Network error: Connection refused

问题描述 使用MobaXterm连接服务器或者虚拟机里面的操作系统显示“Network error: Connection refused” 因为服务器或者虚拟机里面的操作系统没安装 ssh 解决方法 安装ssh sudo apt-get update sudo apt-get upgrade sudo apt-get install ssh重启 ssh service ssh resta…

Docker配置国内镜像源

添加Docker国内镜像源 在/etc/docker/daemon.json文件中添加以下内容&#xff1a; {"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"] }重启docker s…

UTONMOS:元宇宙超越现实的游戏新境界

当现实世界的边界被逐渐突破&#xff0c;元宇宙游戏如同一扇通往奇幻世界的大门&#xff0c;缓缓向我们敞开。 元宇宙游戏&#xff0c;是数字世界与现实世界的完美融合&#xff0c;它为我们带来了前所未有的游戏体验。在这个虚拟的宇宙中&#xff0c;你可以自由翱翔&#xff0…

kafka集群跨区域跨集群同步方案MirrorMaker1 —— 筑梦之路

MirrorMaker原理架构 数据流向 上图也是一种比较常见的用法&#xff0c;这里作为记录。下面介绍一则实战案例。 网络架构 配置日志采集器filebeat 配置从哪里采集日志 输出到kafka集群 配置MirrorMaker消费者 参数说明&#xff1a; bootstrap.servers 指定消费哪个kafka的数…

CDR报错“Unable to load VGCore.dll. Error Code:126”的修复教程

在使用CorelDRAW软件时&#xff0c;有时我们可能会遇到“Unable to load VGCore.dll. Error Code :126”错误提示。这个错误通常表示CorelDRAW无法加载VGCore.dll文件&#xff0c;导致软件无法正常运行。为了解决这个问题&#xff0c;本文将介绍5种修复方法&#xff0c;帮助大家…

元器件基础学习笔记——电感的分类及主要参数

一、电感的分类 电感器是一种电子元件&#xff0c;它能够将电能转化为磁能并储存起来。电感器的分类方法有很多&#xff0c;可以根据用途、形状、结构等不同的标准进行划分。 分类依据类型备注电感值固定电感固定线圈可变电感改变磁芯的饱和度用途高频电感绕线型&#xff0c;积…

1076: 判断给定有向图是否存在回路

解法&#xff1a; 直观的方法用邻接矩阵dfs,这是错误的代码 #include<iostream> #include<vector> using namespace std; int arr[100][100]; int f 0; void dfs(vector<int>& a, int u) {a[u] 1;for (int i 0; i < a.size(); i) {if (arr[u][i]…