首页 > 编程语言 >Java学习系列(三):数组

Java学习系列(三):数组

时间:2024-03-18 10:31:05浏览次数:20  
标签:遍历 系列 int 数据类型 二维 数组 new Java

一、数组的基本概念及作用

数组:是一组相同数据类型元素的集合,是一个容器

①数组可以存储基本数据类型,也可以存储引用数据类型

②数组创建时必须指定长度,且长度不可变

③数组中每个元素空间是连续的

声明数组格式:

数据类型 [] 数组名字 例如:int [] a;

数据类型 数组的名字 [] 例如: int a [];

● 注意: 在Java语言中两种声明方法没有任何区别,但是建议大家用第一种, 避免混淆a的数据类型。

二、数组的创建

●数组的声明的两种方式:

数据类型 [] 数组名字

例如:int [] a; 数据类型

数组的名字 []

例如: int a [];

需要指定数组的长度或容量


● 注意:

输出结果中:

[I@1b6d3586代表数组在内存中的地址(hash值)

Arrays类,java语言中提供的用于操作数组的工具类,提供排序,数组复制

toString(a)把数组以字符串的形式返回,便于调试查看

每个空间会赋予默认值,整数的默认值为0,引用类型默认值都是null,boolean类型默认值都是false


三、数组的访问与迭代

●数组元素的访问:

数组名[索引] 例如:a[0],a[1];

●注意:

数组的索引从0开始。

索引的数据类型是整数(int) ,数组长度最大值就是int的最大值Integer.MAX-VALUE

索引最大值和数组长度始终差1

●获取数组长度

 数组名.length

//数组下标越界异常

● 数组迭代的两种方式:

第一种:for循环

for循环遍历数组

int [] b1 = new int []{1,2,3,4,5,6,7};

数组的迭代

 for(int i =0;i<b1.length;i++){

System.out.println(b1[i]);

}

第二种:增强for循环

Int t 声明一个临时遍历,用来接收每次循环时,从数组中取出的元素

a 遍历的组数

int [] b1 = new int []{1,2,3,4,5,6,7};

for(数组元素的类型 临时变量名字 :数组的名字){

 System.out.println(临时变量名字 );

}

即:

for(int x : b1){

System.out.println(x);

}


//两种比较:

增强for循环:优点:适合挨个的遍历每一个元素,而且写法简单

缺点:不能控制某一区间的遍历

for循环:灵活的控制遍历区间


四、数组排序

1、冒泡排序

每次取出相邻的两个元素进行比较,将较大的向后移,每比较一趟可以找出一个最大值

2、选择排序

从第一个元素开始,与之后的每一个元素进行比较将较小的移到第一个位置,以此类推

未优化前:

优化后:


补充:

Debug模式,用来调试程序逐行运行程序

断点:需要从哪行开始调试,就在那一部设置断点

以debug模式启动

F8 step over 步调 执行一步

调试完成后 释放程序


五、二维数组

1、二维数组的声明

int [][] a; int a2[][];

●注意:建议用第一种,不容易混淆a的数据类型 i

2、二维数组的创建

定义了一个整型的二维数组 ,这个二维数组有3个一维数组,每一个一维数组包含5个元素

[ 3]:表示二维数组的长度为3

[ 5]:表示二维数组中,每一个一维数组的长度是5


注意:

输出结果为红色标中的0

{ (0,0,0,0,0),(0,0,0,0,0),(0,0,0,0,0)}

                                                                              0   1    2   3    4 

                0                                    1                                     2


创建二维数组的三种方式:

●Int [ ][ ] a =new int[3][5];

●Int [ ][ ] a =new int[ ][ ]{{1,2,3},{1,2,3},{1,2,3}};

●Int [ ][ ] a ={{1,2,3},{1,2,3},{1,2,3}};

//[3][ ]:只声明了二维数组的长度是3,并没有声明二维数组中的一维数组的长度,也不会创建一维数组

{null,null,null}


如果要使用的话,可以对每个二维数组单独创建一维数组:

Int [ ][ ] a =new int[3][ ];

      a[0] = new int[10];

a[1] = new int[5];

a[2] = new int[7];


3、二维数组的遍历

标签:遍历,系列,int,数据类型,二维,数组,new,Java
From: https://blog.csdn.net/m0_70830675/article/details/136801275

相关文章

  • 基于C#的自动校时器 - 开源研究系列文章
          上次在公司的Windows7电脑上操作系统没有自动进行校时,导致系统时间老是快那么几分钟,于是想到了用C#开发一个系统时间自动校时器。这个应用不难,主要是能够校时那个操作类的问题。 1、项目目录; 2、源码介绍;1)主窗体; 2)进行校时的......
  • 05_C++数组指针和指针数组
    1.数组指针:当数组指针指向一个一维数组时,()优先级高,说明p是指针,指向一个整型的一维数组。这个一维数组的长度是n,也可以说p的步长为n。当p+1时,p指针会跨过n个整型数据的长度。2.指针数组:当定义一个一维数组时,系统会在内存中为改数组分配一个储存空间,其数组的变量名就是数组的首地址......
  • 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(
    1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来。今天宏哥就在这里把这种测试场景讲解和分享一下。2.用法创建一个执行JS的对象,也就是JavascriptExecutor对象,这个对象是由driver进行强制类型转......
  • Java
    一.基本开发步骤编写代码,形成filename.java源代码文件文件名称继续为java为结尾文件名称必须与类名称一致使用javac编译,形成filename.class字节码文件cmd:javacfilename.java使用java运行cmd:javafilename(绝对绝对不要class!!!)`JDK11以上才能直接运行......
  • java项目打包(maven+原生)
    一、maven打包1.1普通jarjava-jarmaven项目打包提示.jar中没有主清单属性<build><finalName>${project.artifactId}</finalName><!--修改编译出来的jar包名,仅为{artifactId}.jar--><plugins><plugin><gr......
  • java基础
    快捷键:Ctrl+Shift+ESC:任务管理器卸载JDK1.删除java的安装目录2.删除JAVA_HOME3.删除path下关于java的目录4.java-version安装JDK1.baidu搜索JDK8,找到下载地址2.同意协议3.下载电脑对应的版本4.双击安装5.记住安装的路径6.配置环境变量1.添加JAVA_HOME环境变......
  • Java基础知识总结(3)
    冒泡排序冒泡排序是比较基础的排序算法之一,其思想是相邻的元素两两比较,较大的数下沉,较小的数冒起来,这样一趟比较下来,最大(小)值就会排列在一端。整个过程如同气泡冒起,因此被称作冒泡排序。importjava.util.Scanner;/* 外层循环控制轮数,内层循环控制每一轮交换的次数......
  • 「深入理解Java I/O:FilterInputStream」
      咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java之IO流啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~前言  JavaI/O是Java编程语言的核心功能之一,提供了丰富的输入输出操作......
  • 解决: java.util.concurrent.CancellationException详解
    解决:java.util.concurrent.CancellationException详解......
  • 代码重构与单元测试 ---- 系列文章
    代码重构与单元测试(一)代码重构与单元测试——测试项目(二)代码重构与单元测试——“提取方法”重构(三)代码重构与单元测试——重构1的单元测试(四)代码重构与单元测试——对方法的参数进行重构(五)代码重构与单元测试——将方法移到合适[依赖]的类中(六)代码重构与单元测试——使用“......