Java入门基础学习笔记47——ArrayList

news2024/12/22 14:32:19

什么是集合呢?

集合是一种容器,用来装数据的,类似数组。

有数组,为什么还要学习集合呢?

数组定义完成并启动后,长度就固定了。

而集合是大小可变,开发中用的最多的。

集合的特点:大小可变,类型可以不固定,功能更加强大,适合做元素个数不能确定,同时存在增删改查的操作场景。

集合的种类非常多:

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

另外:

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

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

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

相关文章

EI数据库如何出具中文论文检索报告?

Ei Compendex数据库是全球最全面的工程检索二次文献数据库&#xff0c;它收录了7,000,000多篇论文的参考文献和摘要。这些论文出自5,000多种工程类期刊、会议论文集和技术报告。Ei Compendex收录的文献涵盖了所有的工程领域&#xff0c;其中大约22%为会议文献&#xff0c;90%的…

设计模式14——组合模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 组合模式&#xff08;Composit…

k8s——Pod详解

一、Pod基础概念 1.1 Pod定义 Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的&#xff0c;例如&#xff0c;用于管理Pod运行…

10个企业用的wordpress中文模板

移民wordpress主题 移民代办wordpress主题&#xff0c;适合做海外移民咨询的代理公司搭建wordpress企业官方网站使用。 https://www.jianzhanpress.com/?p5130 模特演出wordpress主题 暗黑风格的wordpress主题模板&#xff0c;适用于模特演出公司或艺人经纪公司搭建wordpre…

办公楼智慧公厕解决方案云平台,助力办公环境品质提升

在现代化的办公楼中&#xff0c;智慧公厕解决方案云平台正发挥着至关重要的作用&#xff0c;有力地助力办公环境品质的提升。 一、云平台优势 智慧公厕云平台具有高效的集成性&#xff0c;将各种设备和信息整合在一起&#xff0c;实现了统一管理和调度。云平台还可以和海量的设…

今晚7点,不见不散,图算法新书发布会

亲爱的朋友们&#xff1a; 你们好&#xff01; 在这个知识飞速发展的时代&#xff0c;我们始终相信&#xff0c;学习与创新是推动社会进步的不竭动力。因此&#xff0c;嬴图与机械工业出版社共同邀请您参加我们即将举办的《图算法&#xff1a;行业应用与实践》新书发布会&…

如何为社交feed场景设计缓存体系?no.35

Feed 流场景分析 Feed 流是很多移动互联网系统的重要一环&#xff0c;如微博、微信朋友圈、QQ 好友动态、头条/抖音信息流等。虽然这些产品形态各不相同&#xff0c;但业务处理逻辑却大体相同。用户日常的“刷刷刷”&#xff0c;就是在获取 Feed 流&#xff0c;这也是 Feed 流的…

0基础学习Mybatis系列数据库操作框架——Mysql的Geometry数据处理之WKT方案

大纲 几何结构构建点点集合线线集合面面集合几何信息集合 TypeHandlerSQL操作写入操作读取操作完整XML Mapper测试代码建表SQL总结代码参考资料 WKT全称是Well-Known Text。它是一种表达几何信息的字符串内容。比如点可以用WKT表示为POINT (3 3)&#xff1b;线可以用WKT表示为L…

Spark项目实训(一)

目录 实验任务一&#xff1a;计算级数 idea步骤分步&#xff1a; 完整代码&#xff1a; linux步骤分布&#xff1a; 实验任务二&#xff1a;统计学生成绩 idea步骤分布&#xff1a; 完整代码&#xff1a; linux步骤分步&#xff1a; 实验任务一&#xff1a;计算级数 请…

如何在cPanel面板中开启盗链保护

本周有一个客户&#xff0c;购买Hostease的主机&#xff0c; 客户购买的是Linux虚拟主机&#xff0c;带cPanel面板的。询问我们的在线客服&#xff0c;如何可以防止他的网站上的图片不被盗用。cPanel的盗链保护功能可以帮助客户防止图片被盗链。 盗链&#xff08;Hotlinking&a…

代码随想录-算法训练营day46【动态规划08:单词拆分、多重背包!背包问题总结篇!】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part08● 139.单词拆分 ● 关于多重背包&#xff0c;你该了解这些&#xff01; ● 背包问题总结篇&#xff01; 详细布置 关于 多重背包&#xff0c;力扣上没有相关的题目&#xff0c;所以今天大家的…

05.cv PIL torch

文章目录 opencvrectanglecircle保存图像 PILresize与Opencv的互操作 torchtensor的创建和定义Torch的自动梯度计算Torch的模块torch的训练流程 opencv plt.imshow 以RGB形式显示cv2.imread 读取的是BGR import cv2 image cv2.imread(image.png) #加载图像 print(image.shap…

Linux--软硬链接

目录 0.文件系统 1.软硬链接 1.1见一下软硬链接 1.2软硬链接的特征 1.3软硬链接是什么&#xff0c;有什么作用&#xff08;场景&#xff09; 0.文件系统 Linux--文件系统-CSDN博客 1.软硬链接 1.1见一下软硬链接 1.这是软链接 这个命令在Unix和Linux系统中用于创建一个符号…

什么是DNS缓存投毒攻击,有什么防护措施

随着企业组织数字化步伐的加快&#xff0c;域名系统&#xff08;DNS&#xff09;作为互联网基础设施的关键组成部分&#xff0c;其安全性愈发受到重视。然而&#xff0c;近年来频繁发生的针对DNS的攻击事件&#xff0c;已经成为企业组织数字化发展中的一个严重问题。而在目前各…

vue学习3:开发者调试工具的下载安装

极简插件官网_Chrome插件下载_Chrome浏览器应用商店 (zzzmh.cn) 测试运行程序 网页中右键检查

【Unity3D美术】URP渲染管线学习01

扫盲简介 URP渲染管线是Unity3d提供的一种视觉效果更好的渲染模式&#xff0c;类似的还有Built RP&#xff08;默认最普通的渲染模式&#xff09;\ HDRP(超高清&#xff0c;对设备要求高)&#xff0c;视觉效果好&#xff0c;而且占用资源少&#xff01;成为主流渲染管线模式&a…

十进制同步计数器

十进制同步计数器 使用最多的十进制计数器是按照 8421 BCD 码进行计数的电路 十进制同步加法计数器 【例1】设计一个十进制同步加法计数器&#xff0c;要求电路按 8421 BCD 码进行加法计数 Step1&#xff1a;建立原始状态转换图 Step2&#xff1a;选触发器&#xff0c;求方…

粉丝问,有没有UI的统计页面,安排!

移动应用的数据统计页面具有以下几个重要作用&#xff1a; 监控业务指标&#xff1a;数据统计页面可以帮助用户监控关键业务指标和数据&#xff0c;例如用户活跃度、销售额、转化率等。通过实时更新和可视化呈现数据&#xff0c;用户可以及时了解业务的整体状况和趋势。分析用…

LeetCode 128 最长连续序列(hot100) 解题思路分享

题干&#xff1a; 思路&#xff1a; 如果对时间复杂度没有要求的话&#xff0c;可以先排序&#xff0c;再一段一段地找&#xff0c;这样的好处是空间占用小。 如果希望On的话&#xff0c;那就采取设置一个Set的方法&#xff0c;这样空间复杂度是On&#xff0c;但是时间复杂度…

CPP Con 2020:Type Traits I

先谈谈Meta Programming 啥是元编程呢&#xff1f;很简单&#xff0c;就是那些将其他程序当作数据来进行处理和传递的编程&#xff08;私人感觉有点类似于函数式&#xff1f;&#xff09;这个其他程序可以是自己也可以是其他程序。元编程可以发生在编译时也可以发生在运行时。…