-
2021-03-05 17:40:29
java二维数组
java 语言中提供的数组是用来存储固定大小的同类型元素。
1.二维数组初始化和声明
数组变量的声明,和创建数组可以用一条语句完成,如下所示:
int a[][] = new int[2][3];
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
2.二维数组遍历
//遍历二维数组
public class traverse_a_two_dimensional_array {
public static void main(string[] args) {
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};//静态创建
//遍历数组的第一个方法
for(int i = 0;i < arr.length;i++){
//遍历arr[0],arr中元素第一个数组
for(int j = 0;j < arr[i].length;j++){
system.out.print(arr[i][j]);
}
}
}
}
public class traverse_a_two_dimensional_array {
public static void main(string[] args) {
// todo auto-generated method stub
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};//静态创建
//遍历数组的第二个方法
for (int[] is : arr) {
for (int i : is) {
system.out.print(i);
}
}
}
}
3.arrays 类(暂时还不会用)
java.util.arrays 类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:
给数组赋值:通过 fill 方法。
对数组排序:通过 sort 方法,按升序。
比较数组:通过 equals 方法比较数组中元素值是否相等。
查找数组元素:通过 binarysearch 方法能对排序好的数组进行二分查找法操作。
arraylist 类
arraylist 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。arraylist 继承了 abstractlist ,并实现了 list 接口。
初始化:
import java.util.arraylist; // 引入 arraylist 类
arraylist sites = new arraylist<>(); // 创建一个动态数组
添加元素:
添加元素到 arraylist 可以使用 add() 方法:
sites.add("runoob");
删除元素:
删除 arraylist 中的元素可以使用 remove() 方法:
sites.remove(3); // 删除第四个元素
计算大小:
计算 arraylist 中的元素数量可以使用 size() 方法:
system.out.println(sites.size());
arraylist 排序:
collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。
sort() 方法根据指定的顺序对动态数组中的元素进行排序。
sort() 方法的语法为:
注:arraylist 是 arraylist 类的一个对象。
arraylist.sort(comparator c) comparator - 顺序方式
import java.util.comparator;
// 降序
sites.sort(comparator.reverseorder());
总结
到此这篇关于java二维数组与动态数组arraylist类的文章就介绍到这了,更多相关java二维数组与动态数组arraylist类内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!
希望与广大网友互动??
点此进行留言吧!
更多相关内容 -
Java不指定长度的二维数组实例
2020-08-27 04:29:56今天小编就为大家分享一篇Java不指定长度的二维数组实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
Java二维数组如何做形参,二维数组大小在主函数里定义,形参怎么写?
2021-09-29 20:14:11Java二维数组如何做形参,二维数组大小在函数本身里定义,形参怎么写? -
Java二维数组
2022-07-09 09:57:39基本概念 由一维数组组成的数组二维数组的每个元素都是一个一维数组(第二维度)————绝大部分应用场景里,二位数组的...arr[0].length 代表二维数组第一个元素/一维数组的大小,列数。 由于二维数组的本质仍是一个基本概念
由一维数组组成的数组
二维数组的每个元素都是一个一维数组(第二维度)————绝大部分应用场景里,二位数组的“第二维度”的数组长度是相同的
语法格式
Int[][] 数组名称 = new int[行数][列数];
Int[][] arr = new int[2][3];
初始化了一个长度为2的一维数组,且元素都是数组;
每个元素数组的长度都是3;
二行三列的数据类型为int的二维数组;
arr.length 代表二位数组的大小/元素个数/一维数组的个数,行数;
arr[0].length 代表二维数组第一个元素/一维数组的大小,列数。
int[][] arr = new int[3][];
由于二维数组的本质仍是一个一维数组,所以初始化时也是在初始化一维数组,那么,当不确定“第二维度”的数组元素数量时,在赋值符号右侧,创建数组对象的第二个中括号中可以留空。但是在使用此二维数组前必须对第二维度的数组(留空的括号)进行初始化。不然会出现空指针异常————NullPointerException
int[][] arr = new int[4][]; arr[0] = new int[3];//初始化“第二维度”的一维数组 arr[0][0] = 1; arr[0][1] = 2; arr[0][2] = 3; arr[1] = new int[2];
相当于:
创建了一个名为arr的一维数组 长度为4
arr的第一个元素为数组,长度为3
这个数组没有名字 只能通过arr[0]来表示
此数组的三个元素分别是1,2,3
arr的第二个元素为数组,长度为2
这个数组没有名字,只能通过arr[1]来表示
此数组的2个元素都为0
arr数组的其他元素的值都为null
初始化
int[][] arr = { { 初始值1,初始值2…},{初始值1,初始值2…},{…. }};
包含初始值的大括号数为行
单个大括号内初始值数位列
===============================================
字符串[] arr = new 字符串[]
数组中的每一个元素都可以看成字符串类型的变量,因此使用字符串对象来初始化
new 字符串();
遍历
使用嵌套循环 先遍历“第一维度”,然后在内层循环遍历“第二维度”
内外层循环语法不要求统一
一般内外层循环都使用for循环(循环次数确定)
int[][] arr = new int[2][3]; for(int i = 0 ; i < arr.length ; i++){ for(int j = 0 ; j < arr[i].length ; j++){ System.out.println(arr[i][j]); } }
-
Java一维数组与二维数组的转换
2022-04-29 18:09:43转为 3*3 的二维数组: { 1,2,3 4,5,6 7,8,9 } 我们不难看出: 一维数组第1个元素在数组中为 arr[0][0], 一维数组第3个元素在数组中为 arr[0][2], 一维数组第4个元素在数组中为 arr[1][0], 由于第(n+1)个元素...准备
现有一个一维数组:{1,2,3,4,5,6,7,8,9} 转为 3*3 的二维数组: { 1,2,3 4,5,6 7,8,9 }
我们不难看出:
一维数组第1个元素在数组中为 arr[0][0], 一维数组第3个元素在数组中为 arr[0][2], 一维数组第4个元素在数组中为 arr[1][0], 由于第(n+1)个元素下标为n,为此我们可以得出结论: 一维数组的第n个元素,在二维数组中表示为:arr[n / col][n % col]
题目引入
引用LeetCode的第566题,题意如下:
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。 给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。 如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。
代码实现:
class Solution { public int[][] matrixReshape(int[][] mat, int r, int c) { // 安全性校验 int m = mat.length; int n = mat[0].length; // row*col不等于传递过来的数,不能组成新的维度数组 if ((m * n) != (r * c)) { return mat; } // 程序走到这里,表明能组成新的维度数组 // 创建一个新的二维数组 int res[][] = new int[r][c]; // 遍历旧的二维数组 for (int i = 0; i < m * n; i++) { // 由以上公式,我们可以推导出: res[i / c][i % c] = mat[i / n][i % n]; } return res; } }
代码实现二:
1、先将旧的二维数组转为一维数组; 2、再将一维数组转为按照规则实现的二维数组
public int[][] matrixReshape(int[][] mat, int r, int c) { // 二维数组的行数 int n = mat.length; // 二维数组的列数 int m = mat[0].length; if ((n * m) != (r * c)) { return mat; } int arr[] = new int[n * m]; int index = 0; // 将二维数组转为一维数组 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[index++] = mat[i][j]; } } // 将一维数组转变为二维数组 int res[][] = new int[r][c]; index = 0; for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { res[i][j] = arr[index++]; } } return res; }
-
java二维数组的长度问题
2022-05-26 09:40:46package ArrayTest; public class Array3 { public static void main(String[] args) { //write your code here int[][] A = new int[][]{{1, 1, 2}, {4, 5}, {7, 8, 10, 11, 12}, {}, {1}};...//4,表示数组的行数二维数组的长度
package ArrayTest; public class Array3 { public static void main(String[] args) { //write your code here int[][] A = new int[][]{{1, 1, 2}, {4, 5}, {7, 8, 10, 11, 12}, {}, {1}}; System.out.println("A.length = " + A.length);//5,表示数组的行数 System.out.println("A[0].length = " + A[0].length);//3,表示对应行的长度 System.out.println("A[1].length = " + A[1].length);//2 System.out.println("A[2]A.length = " + A[2].length);//5 System.out.println("A[3]A.length = " + A[3].length);//0 System.out.println("A[4]A.length = " + A[4].length);//1 //System.out.println("A[5]A.length = " + A[5].length);//角标越界 System.out.println("A[0][0] = " + A[0][0]); } }
定义二维数组,赋值
package ArrayTest; public class Array3_1 { public static void main(String[] args) { //定义一个整型数组:3行4列 int a[][] = new int[3][4]; //获取行数---3行 int lenY = a.length; System.out.println("lenY = " + lenY); //获取列数---4列 int lenX = a[0].length; System.out.println("lenX = " + lenX); // 其实很好理解,因为二维数组可以理解为是一维数组,只不过他的各处的元素是特殊元素—–一维数组 System.out.println("a[0][0] = " + a[0][0]); System.out.println("a = " + a); a = null; System.out.println("a = " + a); //System.out.println(a[0][0]);报错 System.out.println(""); int[][] arr = new int[3][4];//定义一个二维数组 int sum = 0;//记录长度 for (int i = 0; i < arr.length; i++) {//获取行的长度 for (int j = 0; j < arr[i].length; j++) {//获取列的长度 arr[i][j] = j; System.out.println("arr[" + i + "][" + j + "] = " + arr[i][j]); sum++;//长度+1 } } System.out.println("sum = " + sum);//输出长度 } }
-
java二维数组详解
2021-11-28 09:34:52二维数组 1、定义 a[num1 ] [num2 ] num1代表有几个二维数组 num2代表每个数组中一维数组的个数 ps { a[ 2] [3] //两行每行三个元素 1 2 3 1 2 3 } a.length就是2 a[i].lengh就是二维数组中的第几个数组的长度。 ... -
Java二维数组的应用
2022-04-07 22:39:121、定义一个6行6列的二维整型数组,输出该二维数组中的每行和每列的最大值、最小值、和平均值。(知识点:数组的创建、初始化和元素访问) 要求:(1)数组元素的值随机产生,大小为20值99之间; (2)输出结果按... -
Java二维数组初始化的方法
2021-02-27 22:25:21下面本篇就Java二维数组简单介绍,然后就三种初始化方法带来详解。1.二维数组说明数组是一个容器,用来存储数据的。现在数组中存储的不再是int,double..的类型了,而是存储的数组。数组中的元... -
java二维数组遍历后转为一维数组_Java入门教程七(数组)
2020-11-20 09:54:37实质上,数组是一个简单的线性序列,因此访问速度很快一维数组一组相同类型数据的线性集合,一旦声明了数组的大小,就不能再修改。创建数据类型[] 数组名; 数据类型既可以是基本数据类型,也可以是引用数据类型String... -
Java 二维数组
2021-02-26 08:43:58二维数组的定义二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。因为数组只能保存一行数据。在生活中,比如坐标等等,我们需要用二维数组来表示。通过行号和列好来定位数据。定义:类型 数组[][] ... -
java二维数组字符数组_Java中的二维数组
2020-07-20 00:54:52java二维数组字符数组Today we will look into Two-dimensional array in java. An array is like a container that can hold a certain number of values. 今天,我们将研究Java中的二维数组。 数组就像可以容纳... -
Java二维数组以及多维数组的定义及应用
2021-03-13 16:36:01一、二维数组以及多维数组1、二维数组的定义:?在一维数组中定义每一个元素也是一个数组元素,这样的数组称为”二维数组“?多维数组就是在一维数组上再次定义二维数组或三位数组等。?一维数组定义int [] array={1,2,... -
Java 二维数组创建及使用
2021-08-18 17:31:09二维数组的创建 二维数组好比一个表格,第一个下标表示行,第二个下标表示列,数组的创建和初始化与一位数组一模一样,及二维数组就是一个把多个一维数组包起来的数组。 数组的创建: type[][] arrayName;或者 type ... -
java二维数组三种初始化方法(实例)
2021-02-12 10:27:02初始化方法:1、使用大括号直接赋值,适合已经确定知道数组元素的情况2、给定二维数组的大小3、数组第二维的长度可变化,未改变代码举例如下:public class NewArray {public static void main(String[] args) {//第... -
Java之二维数组基本使用
2021-06-08 23:06:11二维数组 二维数组的应用场景 比如我们开发一个五子棋游戏,棋盘就是需要二维数组来表示。如图: 1. 二维数组的使用 快速入门案例:TwoDimensionalArray01.java 请用二维数组输出如下图形 0 0 0 0 0 0 0 0 1 0 ... -
Java二维数组添加元素,附详细答案
2021-07-27 11:32:32思考这个问题的时候,我们不凡复习下不错的二分查找,它依赖数组随机访问的特性,其查找时间复杂度为O(log n)。如果我们将元素放入链表中,二分查找还好使吗?这就是今天和大家分享的跳表 理解跳表 假设使用单链表... -
java二维数组创建方法
2021-04-23 13:39:01java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法二维数组的定义 type arrayName[ ][ ]; type [ ][ ]arrayName Java 二维数组的声明、初始化和引用... -
Java二维数组排序(按照某一列值大小)
2020-09-01 20:17:38二维数组排序,按照某一列列大小对数组进行排序。二维数组的排序直接调用Arrays.sort(); 虽然不会出现编译错误,但运行时会出现以下错误提示: 说明不可以这样用,而我们又想对它排序,就可以使用Comparator来外部... -
java二维数组添加数据_Java小白入门必懂知识点
2020-11-20 10:52:541.Java语言的特点(1)Java语言是一种面向对象的编程语言(2)简单、高效、稳定、安全性高(3)Java语言是一种与平台无关的编程语言,因为其自身提供程序运行的解 释环境(4)支持多线程处理(5)Java语言是一种面向网络的高级... -
java一维数组和二维数组的详细解读
2021-01-23 12:43:16二、数组的相关概念 数组名 元素 角标、下标、索引 数组的长度:元素的个数 三、数组的特点 1)数组是有序排序的 2)数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 3)... -
java二维数组指定不同长度实例方法
2021-03-22 16:05:28下面我们就来一起探究,二维数组在改变维度长度大小的方法,并辅以实例进行代码展示。1、二维数组的每个元素都是一个一维数组,这些数组不一定都是等长的。声明二维数组的时候可以只指定第一维大小,空缺出第二维... -
java一维数组转为二维数组
2019-10-11 21:29:02public class 一维数组映射为二维数组 { public static void main(String[] args) { //创建一维数组,并赋值。 int data[]=new int [50]; for(int i=0;i<50;i++) { data[i]=i+1; } ... -
java之二维数组
2022-03-12 20:40:38二维数组的使用 二维数组 arr[ 2 ] [ 3 ]的元素是一维数组,如果访问第2个数组的第2个元素是arr[2][2] 二位数组语法 语法:类型[ ] [ ]数组名 = new 类型[ 大小] [大小 ] 语法: 类型 数组名 [ ] [ ] ; 数组名 = ... -
javascrip如何创建二维数组 并解决数组问题(查找字母位置)
2021-01-08 11:02:35随机生成10X10大小的二维字符数组,显示内容后,查找字符’a’在二维数组第一次出现的位置,若没有则提示无。 今天我们来探讨一下如何用javascrip在二维数组中查找字母的位置 探讨前我们要先知道在 javascrip 中如何... -
Java一维数组和二维数组
2019-10-24 17:05:59一维数组、二维数组、多维数组 数组是相同数据类型的多个元素的容器。 这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素; 除最后一个元素外,每一个元素都有唯一的... -
Java二维数组声明
2020-06-27 16:10:10java中使用 [][] 来定义二维数组 定义数组时也可同时初始化 下面是一些例子 float[][] matrix; //定义一个float类型的2维数组 matrix=new float[5][5]; //为它分配5行5列的空间大小 matrix[0][0]=1.1f; //通过下标...