JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义
在java中数组被看成是一个对象
在定义数组时,有两种定义方法:int[] a 和int a[];第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式。
总的原则:任何对象在被调用之前必须先被初始化!
1 一维数组的定义
//定义包含三个元素的一维数组
//方法1,先new对象,然后再初始化每个元素
int[] a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
方法一要注意的是不能这样写:
int[] a = new int[3];
a = {1,2,3};
原因是用new int[3]这种方式创建对象,对象已经被初始化并赋初值为0;可以用下面代码验证:
int[] d = new int[3];
for(int i=0;i
System.out.println(d[i]);
}
输入结果是:0 0 0
如果再用a = {1,2,3};来赋值,大家知道常量是不能再被赋值的,不可修改的。
//方法2,直接赋初值来创建对象
int[] b = {1,2,3};
//方法3,new完对象直接初始化
int[] c = new int[]{1,2,3};
方法三要注意的是不能这样写: int[] c = new int[3]{1,2,3};
即这种方法不能指定维度,原因:如果指定了数组初始化操作,则不能定义维表达式。
注意:如果用new定义数组时,必须指定其维度,这样定义是错误的: int[] d = new int[];
如果无法确定其元素个数,可以这样定义:int[] e = {};
2 二维数组的定义
基本与一维数组类似
//定义一个3行5列的二维数组
//方法1,先new对象,然后再初始化每个元素
int[][] a = new int[3][5];
a[0][0]=1;
a[0][1]=2;
a[0][2]=3;
//方法2,直接赋初值来创建对象
int[][] b = {{1,1,1,1,1}, {2,2,2,2,2}, {3,3,3,3,3} };
//方法3,new完对象直接初始化
int[][] a = new int[][]
{{1,1,1,1,1}, {2,2,2,2,2}, {3,3,3,3,3} };
定义二维数组必须指定其行数,列数可以指定,可以不指定。
这样定义是正确的:int[][] d = new int[3][];
这样定义是错误的:int[][] d = new int[][4]; int[][] d = new int[][];
也可以定义不规则数组:
arr = new int[2][];
arr[0] = new int[3];
arr[1] = new int[5];
3 数组的长度
length是数组的一个属性(不是方法!),对于一维数组int[] b = {1,2,3}; b.length的值是3,
对于二维数组,首先研究一下它的配置细节:int[][] arr = new int[2][3];
上面这个程序片段中,配置了
2
行
3
列的二维数组对象,由于数据类型是
int
,所以数组元素的预设元素为
0
。
其实
arr[0]
、
arr[1]
是两个一维数组对象,其长度各为
3
,而
arr
类型是
int[] []
,内容值为
arr[0]
与
arr[1]
。其关系如图1
所示。
图
1
二维数组的配置关系
从图
1
中可以看到,
arr
引用
int[] []
类型的对象,内容包括
arr[0]
与
arr[1]
,而
arr[0]
与
arr[1]
再分别引用一个一维数组对象。
因此
arr.length
与
arr[0].length
所表示的长度意义是不同的,arr.length表示的是数组的行数,arr[i].length表示的是指定行所包含的元素数。本例中,arr.length=2,arr[0].length=3。
4 数组的初始值
数
据
类
型
初
始
值
数
据
类
型
初
始
值
byte
0
float
0.0f
short
0
double
0.0d
int
0
char
/u0000
long
0L
boolean
false
JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义相关推荐
- 编写一个函数get_average()获取整型数组元素的平均值。要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值。
题目内容: 编写一个函数get_average()获取整型数组元素的平均值.要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值.在main()函数中通过具体的一维数组Array ...
- 我以为一维数组就已经天下无敌了,没想到二维数组比他还勇猛,这是谁的部将!?
(阅读本文章前,请各位看官老爷先自行学习一维数组) 一.二维数组定义 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].例 ...
- 二维数组 类型_「初识C语言」二维数组
一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量. ...
- 二维数组大小的确定!你真的是二维数组吗?
昨天做了一道剑指Offer的题目,是关于dfs的题目,链接点这里 但是其中对于flag[][],二维数组的创建,起了疑惑.在上面链接里也放了关于用new建立二维数组的例子. 但是自己突然想测试一下,用 ...
- C++使用VARIANT实现二维数组的操作、怎么使用COleSafeArray实现二维数组将字符串写入excel
配合OLED_V2的excel操作 C++使用VARIANT实现二维数组的操作 VARIANT变量是COM组件之间互相通信的重要的参数变量之一,它可以容纳多种不同的类型,如short.long.dou ...
- 二维数组转json字符串,json字符串转二维数组
二维数组转json字符串,直接上代码 /*** 二维数组转json字符串*/public static String twoArrToJson(int[][] arr) {String jsonStr ...
- 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)
// 121219 上机任务3.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * ...
- Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...
- java多维数组按照某一列排序,PHP实现二维数组按某列进行排序的方法
本文实例讲述了PHP实现二维数组按某列进行排序的方法.分享给大家供大家参考,具体如下: /* * 二维数组 按某列排序 * array_multisort($arr1,$arr2) * 手册 例子如下 ...
- python二维数组变成三维数组_Python reshape的用法及多个二维数组合并为三维数组的实例...
reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变.是对每行元素进行处理 resize(shape) : 与.reshape()功能一致,但修改原数组 In [ ...
最新文章
- Cannot input a tensor of dimension other than 0 as a scalar argument
- service mesh istio-0.8安装测试
- 【51nod - 1050】循环数组最大子段和(dp)
- JavaScript逻辑运算符
- java中awt和swing是的关系以及区别
- 【Python实例第4讲】填补缺失值
- 2022年高压电工考试题模拟考试平台操作
- matlab 积分后带int,matlab int 积分
- python怎么下载安装教程_python怎么下载?《python软件下载安装教程》
- 数据可视化:大屏可视化设计全流程教程
- TMS570-3-RTI中断
- 超融合服务器系统,超融合服务器|超融合架构|超融合一体机|业务系统一体机
- 如何在iPhone手机上安装ipa(应用安装包)
- matlab pcm encode,[MATLAB基础] PCM编码及解码
- C++静态成员变量与静态成员函数
- 小知识02:什么是FASS?
- alexa api php,PHP通过Alexa官方API获取网站Alexa排名 - 米扑博客
- EasyNVR无插件直播流媒体服务器云端集中管控的EasyNVS云管理平台安装使用文档
- 从SPACE矩阵,看5G究竟是否在走向成功?
- sprinngboot分库分表中间件
热门文章
- 三元组损失 Triplet Loss及其梯度
- pyqt播放视频不能显示 解决
- python元素平方和,模长
- OpenCV 3最新模块介绍
- access导出MySQL表格_将ACCESS 的数据库中的表的文件 导出了EXCEL格式
- c语言编程暴力是什么意思,(C语言代码)用笨办法暴力出来的,但是还是希望给大家一点思路上的启发...
- thymeleaf的能用在什么地方_细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!
- php扩展包启动,Composer 扩展开发:本地运行扩展包
- PHP中使用include、require、include_once、require_once的区别
- java定时器返回future_java 定时器线程池(ScheduledThreadPoolExecutor)的实现