在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中一维数组和二维数组的定义相关推荐

  1. 编写一个函数get_average()获取整型数组元素的平均值。要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值。

    题目内容: 编写一个函数get_average()获取整型数组元素的平均值.要求这个函数既可以用来求一维数组元素的平均值,也可以求二维数组元素的平均值.在main()函数中通过具体的一维数组Array ...

  2. 我以为一维数组就已经天下无敌了,没想到二维数组比他还勇猛,这是谁的部将!?

    (阅读本文章前,请各位看官老爷先自行学习一维数组) 一.二维数组定义 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].例 ...

  3. 二维数组 类型_「初识C语言」二维数组

    一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量. ...

  4. 二维数组大小的确定!你真的是二维数组吗?

    昨天做了一道剑指Offer的题目,是关于dfs的题目,链接点这里 但是其中对于flag[][],二维数组的创建,起了疑惑.在上面链接里也放了关于用new建立二维数组的例子. 但是自己突然想测试一下,用 ...

  5. C++使用VARIANT实现二维数组的操作、怎么使用COleSafeArray实现二维数组将字符串写入excel

    配合OLED_V2的excel操作 C++使用VARIANT实现二维数组的操作 VARIANT变量是COM组件之间互相通信的重要的参数变量之一,它可以容纳多种不同的类型,如short.long.dou ...

  6. 二维数组转json字符串,json字符串转二维数组

    二维数组转json字符串,直接上代码 /*** 二维数组转json字符串*/public static String twoArrToJson(int[][] arr) {String jsonStr ...

  7. 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)

    // 121219 上机任务3.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * ...

  8. Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值

    为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...

  9. java多维数组按照某一列排序,PHP实现二维数组按某列进行排序的方法

    本文实例讲述了PHP实现二维数组按某列进行排序的方法.分享给大家供大家参考,具体如下: /* * 二维数组 按某列排序 * array_multisort($arr1,$arr2) * 手册 例子如下 ...

  10. python二维数组变成三维数组_Python reshape的用法及多个二维数组合并为三维数组的实例...

    reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变.是对每行元素进行处理 resize(shape) : 与.reshape()功能一致,但修改原数组 In [ ...

最新文章

  1. Cannot input a tensor of dimension other than 0 as a scalar argument
  2. service mesh istio-0.8安装测试
  3. 【51nod - 1050】循环数组最大子段和(dp)
  4. JavaScript逻辑运算符
  5. java中awt和swing是的关系以及区别
  6. 【Python实例第4讲】填补缺失值
  7. 2022年高压电工考试题模拟考试平台操作
  8. matlab 积分后带int,matlab int 积分
  9. python怎么下载安装教程_python怎么下载?《python软件下载安装教程》
  10. 数据可视化:大屏可视化设计全流程教程
  11. TMS570-3-RTI中断
  12. 超融合服务器系统,超融合服务器|超融合架构|超融合一体机|业务系统一体机
  13. 如何在iPhone手机上安装ipa(应用安装包)
  14. matlab pcm encode,[MATLAB基础] PCM编码及解码
  15. C++静态成员变量与静态成员函数
  16. 小知识02:什么是FASS?
  17. alexa api php,PHP通过Alexa官方API获取网站Alexa排名 - 米扑博客
  18. EasyNVR无插件直播流媒体服务器云端集中管控的EasyNVS云管理平台安装使用文档
  19. 从SPACE矩阵,看5G究竟是否在走向成功?
  20. sprinngboot分库分表中间件

热门文章

  1. 三元组损失 Triplet Loss及其梯度
  2. pyqt播放视频不能显示 解决
  3. python元素平方和,模长
  4. OpenCV 3最新模块介绍
  5. access导出MySQL表格_将ACCESS 的数据库中的表的文件 导出了EXCEL格式
  6. c语言编程暴力是什么意思,(C语言代码)用笨办法暴力出来的,但是还是希望给大家一点思路上的启发...
  7. thymeleaf的能用在什么地方_细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!
  8. php扩展包启动,Composer 扩展开发:本地运行扩展包
  9. PHP中使用include、require、include_once、require_once的区别
  10. java定时器返回future_java 定时器线程池(ScheduledThreadPoolExecutor)的实现