关于可变长数组 ArrayList

在java中存在有二维数组的行会发生变化,那么我该如何定义这个可变行的数组?
在Java中,可以使用ArrayList来定义一个可变的二维数组。首先,需要导入ArrayList类,然后创建一个ArrayList的ArrayList,即二维ArrayList。这样,每一行都可以根据需要进行添加、删除或修改元素。

import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个二维ArrayListArrayList<ArrayList<Integer>> matrix = new ArrayList<>();// 添加一行ArrayList<Integer> row1 = new ArrayList<>();row1.add(1);row1.add(2);row1.add(3);  // 添加元素通过add() 方法添加matrix.add(row1);  // 然后将row1添加到二维数组matrix中,将其作为二维数组的第一行的值// 添加另一行ArrayList<Integer> row2 = new ArrayList<>();row2.add(4);row2.add(5);row2.add(6);matrix.add(row2);// 修改第一行的第二个元素matrix.get(0).set(1, 99);  // get(0):表示获取第一行值   set(1,99):表示修改第2个元素值,修改为99// 删除第二行matrix.remove(1); // remove(1):表示删除第2行// 输出二维ArrayList的内容for (ArrayList<Integer> row : matrix) {for (int num : row) {System.out.print(num + " ");}System.out.println();}}
}

在Java中,你可以使用ArrayList来实现可变行的二维数组。ArrayList是一个动态数组,可以根据需要自动调整大小。

import java.util.ArrayList;public class Main {public static void main(String[] args) {// 创建一个可变行的二维数组ArrayList<ArrayList<Integer>> newPOS = new ArrayList<>();// 添加第一行数据ArrayList<Integer> row1 = new ArrayList<>();row1.add(1);row1.add(2);row1.add(3);row1.add(4);row1.add(5);newPOS.add(row1);// 添加第二行数据ArrayList<Integer> row2 = new ArrayList<>();row2.add(6);row2.add(7);row2.add(8);row2.add(9);row2.add(10);newPOS.add(row2);// 获取第i行的前5列数据int i = 0; // 假设获取第一行ArrayList<Integer> row = newPOS.get(i);  // 获取第i行的值(i=0)ArrayList<Integer> firstFiveColumns = new ArrayList<>(row.subList(0, 5)); // 获取第i行的前5列的值[0,5)// 输出第i行的前5列数据for (int j = 0; j < 5; j++) {System.out.println(firstFiveColumns.get(j));}}
}

在上面的示例中,我们使用ArrayList<ArrayList>来定义一个可变行的二维数组newPOS。
我们通过调用ArrayList的add()方法向newPOS中添加行数据,并使用get()方法获取特定行的数据。然后,我们使用subList()方法获取第i行的前5列数据,并将结果存储在名为firstFiveColumns的ArrayList中。最后,我们遍历firstFiveColumns并输出每个元素的值。

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

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

相关文章

Qt点击按钮在附近弹出下拉框

效果 MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include"toollayout.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow…

vue3+vite项目构建时报错npm ERR! code EPERMnpm ERR! syscall mkdir...

vscode终端中输入npm create vitelatest vueviteproject1 -- --vue命令后报错 具体报错如下&#xff1a; PS D:\project> npm create vitelatest vueviteproject1 -- --vue >> npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path D:\node\node_cache\_cac…

AtCoder Beginner Contest 335 A-E 题解

比赛链接&#xff1a;https://atcoder.jp/contests/abc335/比赛时间&#xff1a;2024 年 1 月 6 日 20:00-21:40 A题&#xff1a;2023 标签&#xff1a;字符串题意&#xff1a;给定一个字符串&#xff0c;把最后一个字符串改成 4 4 4输出。题解&#xff1a;字符串最后一个字符…

2023,程序员正式进入寒冬的一年。

是的&#xff0c;2023年的java行业如网上说的。 “行业寒冬&#xff01;&#xff01;” 后台有粉丝私信我&#xff0c;跟他同期进公司的同事&#xff0c;现在只剩下他自己了&#xff0c;并且每天有很多人来公司面试&#xff0c;很担心自己哪天就被炒了。 程序员就是这样&…

C语言:自定义类型——联合和枚举

一、联合体 1.1 联合体类型的声明 像结构体⼀样&#xff0c;联合体也是由⼀个或者多个成员构成&#xff0c;这些成员可以是不同的类型。 声明方式如下图&#xff1a; 那联合体和结构体究竟有什么区别呢&#xff1f;&#xff1f; 下面将重点讲解联合体的特点&#xff01;&am…

判断交叉编译工具是否支持C++20的标准

写个任意的测试程序hello_world 执行 arm-linux-gnueabihf-g -stdc14 main.cpp arm-linux-gnueabihf-g -stdc17 main.cpp arm-linux-gnueabihf-g -stdc20 main.cpp没报错则代表支持&#xff0c;报错则不支持.

数字图像处理常用算法的原理和代码实现详解

本专栏详细地分析了常用图像处理算法的数学原理、实现步骤。配有matlab或C实现代码&#xff0c;并对代码进行了详细的注释。最后&#xff0c;对算法的效果进行了测试。相信通过这个专栏&#xff0c;你可以对这些算法的原理及实现有深入的理解&#xff01;   如有疑问&#xf…

公司想做一套数字化管理系统,该怎么做?

引言 一个老板的心声&#xff1a;随着科技的迅猛发展&#xff0c;公司数字化已经成为提升业务竞争力不可或缺的关键因素。在这个数字时代&#xff0c;我们公司旨在顺应潮流&#xff0c;迎接挑战&#xff0c;以构建一套强大而高效的数字化管理系统为目标。通过本系统&#xff0…

linux-等保三级脚本(2)

该脚本主要是针对 CentOS Linux 7 合规基线加固的一些配置操作&#xff0c;包括创建用户、安全审计配置、入侵防范配置、访问控制配置、身份鉴别策略配置等。如果您需要在脚本中添加公司网址&#xff0c;您可以在适当的位置添加相应的内容。不过请注意&#xff0c;在实际生产环…

8路DI高速计数器,8路DO支持PWM输出,Modbus TCP模块 YL93 开关量输入输出

特点&#xff1a; ● 8路开关量输入&#xff0c;8路开关量输出 ● DI每一路都可用作计数器或者频率测量 ● DO每一路都可独立输出PWM信号 ● DI和DO都支持PNP&#xff0c;NPN切换功能 ● 支持Modbus TCP 通讯协议 ● 内置网页功能&#xff0c;可以通过网页查询电平状…

Gradle笔记

Repositories使用 repositories {mavenLocal()mavenCentral()maven {url "https://kanwan-sdk-java-public.kanwan.id/releases"content {includeGroupByRegex "id\\.kanwan.*"}}maven {url "https://kanwan-sdk-java-public.kanwan.id/snapshots&qu…

安达发|APS计划排产排程排单软件功能解析

APS计划排产排程排单软件是一种用于生产计划和排程的工具&#xff0c;它可以帮助制造企业实现高效、准确的生产计划和排程。该软件具有多种功能&#xff0c;包括可视化人机互动排产、一键式全自动排产、设备产能约束排产、模具约束排产、人员约束排产、半成品约束排产、物料齐套…

Unity | 渡鸦避难所-7 | 攻击碰撞检测

1 前言 英雄的宝剑并非只是装饰物&#xff0c;利剑出鞘时可以对怪物造成伤害。同样&#xff0c;怪物挥出铁拳时也会对英雄造成伤害。当然&#xff0c;都有同样的前提&#xff1a;在武器碰到对方的情况下&#xff0c;才会造成伤害。利用物理引擎&#xff0c;可以轻松的实现碰撞…

SparkSQL——(扩展) Cataylst

(扩展) Cataylst 优化器 RDD 和 SparkSQL 运行时的区别 RDD 的运行流程 大致运行步骤&#xff1a; 先将 RDD 解析为由 Stage 组成的 DAG, 后将 Stage 转为 Task 直接运行 问题&#xff1a; 任务会按照代码所示运行, 依赖开发者的优化, 开发者的会在很大程度上影响运行效率 解决…

图像分类 | 基于 Labelme 数据集和 VGG16 预训练模型实现迁移学习

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要使用数据标注工具 Labelme 对自行车&#xff08;bike&#xff09;和摩托车&#xff08;motorcycle&#xff09;这两种训练样本进行标注&#xff0c;使用预训练模型 VGG16 作为卷积基&#xff0c;并在其之上添加了全连接…

openssl3.2 - 官方demo学习 - mac - gmac.c

文章目录 openssl3.2 - 官方demo学习 - mac - gmac.c概述笔记END openssl3.2 - 官方demo学习 - mac - gmac.c 概述 使用GMAC算法, 设置参数(指定加密算法 e.g. AES-128-GCM, 设置iv) 用key执行初始化, 然后对明文生成MAC数据 官方注释给出建议, key, iv最好不要硬编码出现在程…

【OpenCV学习笔记14】- 图像的几何变换

这是对于 OpenCV 官方文档中 图像处理 的学习笔记。学习笔记中会记录官方给出的例子&#xff0c;也会给出自己根据官方的例子完成的更改代码&#xff0c;同样彩蛋的实现也会结合多个知识点一起实现一些小功能&#xff0c;来帮助我们对学会的知识点进行结合应用。 如果有喜欢我笔…

Notepad++运行C语言输出乱码

方法一&#xff1a;编码-编码字符集-中文-GB2312 这时原程序中文会变成乱码&#xff0c;我是重新输入中文 重新编译执行即可 缺陷&#xff1a;重开一个程序有中文还是会显示乱码&#xff0c;需要重新设置编码&#xff0c;比较麻烦 方法二&#xff1a;设置-首选项-新建-右侧编…

[SWPUCTF 2022 新生赛]ez_rce

[SWPUCTF 2022 新生赛]ez_rce wp 题目页面&#xff1a; 这个页面真的什么都没有。 目录爆破 dirsearch -u "http://node5.anna.nssctf.cn:28677/"返回结果&#xff1a; 访问 /.gitignore 页面 提示 thinkphp 。 访问 /robots.txt 页面 发现目录&#xff1a;/NSS/…

医院住院综合服务管理系统

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1 课题背景 互…