Java数组

一、创建数组的格式

二、数组下标

三、存放数组元素

四、取出数组元素

五、二维数组等多维数组

\qquad 遍历二维数组

一、创建数组的格式:

  1. 数组所需要存储的数据类型[ ] 数组对象变量名 = new … 数据类型[length];
  • int[] arr = new int[10];// 定义了一个空间为10的 int型数组
  1. 数组所需要存储的数据类型[ ] 数组对象变量名 = {元素1,元素2,元素3};
  • String[] btnstrs={“原图”,”马赛克“};
1. 任何数组都只有一个属性:length(数组的长度,能够存储的元素个数)
2. 定义了数据类型的数组只能够存放当前数据类型的元素。

二、数组下标

下标:从数组的第一个空间开始,计数为0,依次递增,下标的最大值为: length-1

我们定义数组长度时指定了length,代表能够存放元素的个数,下标从0开始,代表第一个元素。

例如:int[] arr = new int[10];那么第一个元素就是arr[0],最后一个元素就是arr[length-1],也就是arr[9]

三、存放数组元素

存放数组元素:数组名[下标]=元素;

例如:arr[0] = 1; //将数组arr的第一个元素赋值1

要注意数组下标不要越界!

例如:

int[] arr = new int[10];
arr[10] = 1; //error! 10超出了数组的界限

由于arr[10]代表取数组第11个元素,而arr[]只有10个元素空间,因此会超出界限报错,这就是数组越界

数组越界可以是越上界,也可以是越下界,需要我们时刻注意

可以使用for循环遍历数组进行赋值:

for(int i=0; i < arr.length; i++){arr[i] = 值;
}

四、取出数组元素

取出数组元素

  1. 存储类型 变量名 = 数组名[下标];用于赋值

  2. 直接使用 数组名[下标]; 用于直接使用数组元素进行操作

例如:

int n=arr[0];把arr[0]代表的int值赋给n。

if(arr[0]==0){}把arr[0]代表的值直接用来判断

同样要注意如果要赋值,数据类型也要匹配。

五、二维数组等多维数组

二维数组:数组所需要存储的数据类型[][] 数组对象变量名 = new … 数据类型[length1][length2];

首先明确一个概念:任何维度的数组都是一维的

那么二维数组本身就不存在,本质也是一维数组

下面我们拿int[][]系列作为范例说明


  1. []表示数组标识

  2. int[] 表示一种引用数据类型

  3. (数据类型)[]表示数组,所以我们再加一个[] (int[])[],这就是上面我们的二维数组int[][]

  4. 我们可以看出,对当前数组来说,[]是唯一的

  5. 所以我们可以推至三维数组:((int[])[])[] -> int[][][]

下面我们针对二维数组来举例:

int[][] arr2 = new int[10][8];
  1. 长度为10的数组,每个元素又是一个长度为8的数组

  2. 直接取到int值

    • arr2[第几个元素][中的第几个元素];
  3. 单独取一个元素(一个一维数组)

    • arr2[第几个一维数组下标]
int[][] arr2 = new int[10][8];
// 从二维数组中 取出一个单个一维数组
int[] arr_2_9 = arr2[9];
// 操作单个一维数组
arr_2_9[0]=500;

遍历二维数组

就像遍历一维数组那样,只不过我们的for循环变成了两层,先遍历总共的一维数组个数length1,再分别遍历每个一维数组元素个数length2

for(int i=0;i<10;i++){// 当作每次取出一个一维数组for(int j=0;j<8;j++){// 把每个一维数组里循环从头到尾操作int num = arr2[i][j];}
}

我们还可以使用单层for循环,使用取余取模操作对数组进行遍历,原理是一样的

for (int i = 0; i < arr2.length*arr2[0].length;i++) {int num1= arr2[i/8][i%8]; //这里的8就对应上面的arr2[0].length,原理是每当遍历完一个一维数组,i/8会自动+1,而i%8会自动变为0,这样即可达到类似二维for循环的效果System.out.print(num1+" ");
}

Java数组基础使用下标、遍历、存取与本质相关推荐

  1. 随机点名器1(Java数组基础)

    前言 这里我们运用一些基本的Java知识点来完成一个小小项目--随机点名器,(后续我们也会此不断升级,知识点的不断增加) 这里我们重点运用到的是:Java数组的基础运用 项目描述 编写一个随机点名的程 ...

  2. Java数组基础笔记(引用、字符串数组)

    文章目录 数组的新建 数组的引用概念 字符串数组引用的奇妙 数组的新建 数组的新建有多种方式,需要注意返回值类型是int[],新建方式如下几种: int[] ns: ns = new int[] {1 ...

  3. Java数组学习笔记(遍历、排序、多维数组、命令行参数)

    文章目录 数组的遍历和快速打印 冒泡排序和快速排序 数组和字符串排序的区别 多维数组建立和输出 命令行向main()传递参数 数组的遍历和快速打印 一.数组的遍历 数组的遍历有两种方法,一种是使用fo ...

  4. JAVA总裁--Java数组基础知识

    1.数组的定义: 数组是由一组类型相同的数据元素构成的有序集合,每个数据元素称为一个数组元素(简称为元素),每个元素受n(n≥1)个线性关系的约束,每个元素在n个线性关系中的序号i1.i2.-.in称 ...

  5. 2020.1.16 Java数组基础

    今天学习了一维数组的基础,以及对数组进行常规化处理的Arrays类(toString .equals .sort .fill .copyOf .copyOfRange .binarySearch),和 ...

  6. java数组length是下标_数组的下标与长度

    我们知道数组实际上是一种简单的数据结构,它在计算机中是顺序存储的,而我们要使用数组,实际上就是要使用数组中的元素. 如:现在有一个数组:int[] a = {13,15,59,28};那么我们如何找到 ...

  7. java数组基础知识巩固

    一.数组练习: 1.使用两种方式定义一个整形的一维数组,获取数组中的值,为数组中的元素赋值,遍历一维数组 代码: class SingleDimensionArray {public static v ...

  8. java数组、集合和数据结构知识*

    为什么80%的码农都做不了架构师?>>>    一.数据结构知识.数据结构分为逻辑结构和物理结构,下面是百度百科的数据结构知识. 数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结 ...

  9. java 数组下标 变量_Java基础语法:数组

    一.简介 描述: 数组是相同类型数据的有序集合. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 基本特点: 数组的长度是确定的.数组一旦被创建,它的大小就是不可以改变的. ...

最新文章

  1. 3331付款方式怎么写_拼多多怎么刷单 为什么要刷单
  2. android dp sp px_Android屏幕适配★★重点盘点★★
  3. 苹果将于 2025 年推出的 Apple Car 长什么样?
  4. SDUT oj 选拔赛1 迷之好奇
  5. php免费下载手册,php手册|php中文手册下载|好特下载
  6. 语言 OJ 高低位逆转_用于检测污水井内水位高低的报警器--液位开关
  7. 使用Nexus3搭建Maven私服+上传第三方jar包到本地maven仓库
  8. 第二次公共考试,判断错题集
  9. qpython 使用教程_python中spy++的使用超详细教程
  10. spring-第六篇之创建bean的3种方式
  11. 挑战性题目DSCT102:木板切割问题
  12. UE激活(亲测有效,通过注册机激活)
  13. 在电脑上如何快速制作一寸照片?在线一键制作工具推荐给你
  14. 计算机科学与技术班级,学院计算机科学与技术学院专业班级计算机科学与技术.doc...
  15. [Python] 微信for PC自动群发消息、图片以及文件
  16. 必应每日一图php,轻量必应每日一图HTML源码
  17. 使用 PHPMailer 配合 QQ邮箱 发送邮件
  18. 第三集 be 动词一般动词的过去式
  19. MATLAB水箱液位模糊控制仿真程序
  20. 不要混淆事件的互不相容和互相独立

热门文章

  1. Vmware设置网络设置
  2. java gettext返回值_JAVA getText() 取不到值
  3. 为什么程序员都很排斥面试时做题?答不出题的程序员会是大牛吗?
  4. nginx $remote_addr 详解
  5. android 点击震动,Android 实现为点击事件添加震动效果
  6. 片偏移怎么计算_计算机网络学习笔记(四)之网络层
  7. 中兴视觉大数据报道:人工智能发展史上的起起伏伏
  8. /etc下的host配置文件们
  9. Baumer工业相机VCX系列相机硬件触发流程和设置
  10. 分子对接教程 | (5) 配体小分子的预处理