java语言中数组中的每个数据称为_一、Java语言基础(4)_方法和数组——数组...

2024-02-12 22:10

本文主要是介绍java语言中数组中的每个数据称为_一、Java语言基础(4)_方法和数组——数组...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2018-04-25

不悔梦归处,只恨未尽心

数组

一、一维数组

597f474b8677fdd1fad844ceb2314684.png

数组的含义:具有相同类型的多个变量按有序形式组织起来的数据形式。(数组是用来存储固定大小的同类型元素。)

数组的定义:

方式1(推荐使用):数组元素类型[] 数组名称;  如:int[] ages;  (可以把 int[] 看成一个整体,看成一种数据类型,int类型的数组)

方式2:数组元素类型 数组名称[];  如:int ages[];

数组必须初始化才能使用,因为初始化表示在内存存中分配空间。

3.数组的初始化:

数组是定长的:一旦初始化完成,数组的长度(数组元素个数)就固定了,不能改变。如果需要更改,只能重新初始化。

88be7daa206eebf8e5982fcde39c3ef0.png

静态初始化

由程序员为每一个数组元素设置初始值,而数组的长度由系统自动分配

语法:数组元素类型[] 数组名 = new 数组元素类型[]{元素1,元素2,元素3,...};  new关键字:在堆空间开辟一块内存区域,用来存储数据。

举例:int[] num = new int[]{1,3,5,7,9};

简单写法(必须申明的同时并初始化,不能先声明后初始化):int[] num = {1,3,5,7,9};

动态初始化

由程序员设置数组元素个数(数组长度),而每一个数组元素的初始值由系统决定。

语法:数组元素类型[] 数组名 = new 数组元素类型[length];

举例:int[] num = new int[100];

4.静态初始化内存分析

0aefcac9530dd050abc98110324f4cc9.png

5.动态初始化内存分析

63a27260d34eaafb17204bbf8f2320d0.png

6.数组的基本操作

获取数组元素

元素类型 变量 = 数组名[index];  index表示索引

设置元素

数组名[index] = 值;

遍历数组

建议使用for循环遍历

数组长度

int num = 数组名.length;  (length是属性,不是方法)

索引范围

[0,length-1]从0开始,逐一递增

数组基本操作的代码:

1 //数组的基本操作

2

3 classArrayDemo4 {5 public static voidmain(String[] args){6

7 int[] num1 = new int[]{1,3,5,7,9};8

9 System.out.println("数组的长度=" +num1.length);10 System.out.println("数组第一个元素=" + num1[0]);//获取数组元素11

12 //修改(设置)num1数组的第一个元素

13 num1[0] = 100;14 System.out.println("数组第一个元素=" + num1[0]);//获取数组元素

15

16 System.out.println("----------------------------");17

18 //遍历数组

19 System.out.println("数组第一个元素=" + num1[0]);20 System.out.println("数组第二个元素=" + num1[1]);21 System.out.println("数组第三个元素=" + num1[2]);22 System.out.println("数组第四个元素=" + num1[3]);23 System.out.println("数组第五个元素=" + num1[4]);24

25 System.out.println("----------------------------");26

27 //使用for循环遍历数组

28 for(int index = 0; index < num1.length; index++){29 System.out.println(num1[index]);30 }31 }32 }

输出结果:

0c8e44bba83ea39a20de0d9eaa2468a0.png

7. 操作数组常见异常

NullPointerException:空指针异常(空引用异常)

当数组没有初始化,就直接操作数组,就会出现空指针异常

如: int[] bs = null;

System.out.println(bs.length);

ArrayIndexOutOfBoundsException:数组的索引越界异常

如: int[] a = {100};

System.out.println(a[-1]);

8.获取数组最大和最小元素

输出结果:10

1 classArrayDemo22 {3

4 //获取数组最大元素

5 public static int getMax(int[] num){6 int max = num[0];//假设第一个元素是最大值

7 for(int index = 1; index < num.length; index++){8 if(num[index] >max){9 max = num[index]; //把最大值存储在max变量里

10 }11 }12 returnmax;13

14 }15

16 public static voidmain(String[] args)17 {18

19 int[] num = new int[]{-3,0,2,1,10};20

21 int max =ArrayDemo2.getMax(num);22 System.out.println(max);23 }24 }

9.按格式打印数组元素

2d2786d67ef4091543bb7753c3e2b835.png

1 classArrayDemo22 {3

4

5

6 public static voidmain(String[] args)7 {8

9

10 String[] arr = {"A","B","C","D","E"};11 ArrayDemo2.printArrary(arr);12 }13 static voidprintArrary(String[] arr){14 //如果数组为空,则输出null

15 if(arr == null){16 System.out.println("null");17 return; //结束方法

18 }19

20 String ret = "[";21 //遍历数组

22 for(int index = 0; index < arr.length; index++){23 ret = ret +arr[index];24 //如果当前index不是最后一个索引,则拼接“,”

25 if(index != arr.length-1){26 ret = ret + ", ";27 }28 }29 ret = ret + "]";30

31 System.out.println(ret);32 }33 }

输出结果:

277eb173600733010649bdddce6aa28b.png

10.逆序排列数组元素

1 classArrayDemo22 {3

4 public static voidmain(String[] args)5 {6 String[] arr = {"A","B","C","D","E"};7 ArrayDemo2.printArrary(arr);8 String[] newArr =ArrayDemo2.reverse(arr);9 ArrayDemo2.printArrary(newArr);10 }11 static voidprintArrary(String[] arr){12 //如果数组为空,则输出null

13 if(arr == null){14 System.out.println("null");15 return; //结束方法

16 }17

18 String ret = "[";19 //遍历数组

20 for(int index = 0; index < arr.length; index++){21 ret = ret +arr[index];22 //如果当前index不是最后一个索引,则拼接“,”

23 if(index != arr.length-1){24 ret = ret + ", ";25 }26 }27 ret = ret + "]";28

29 System.out.println(ret);30 }31

32 staticString[] reverse(String[] oldArr){33

34 //创建一个新数组,用来存放就数组逆序之后的元素

35 String[] newArr = newString[oldArr.length];36 for(int index = oldArr.length-1; index >= 0; index--){37 newArr[oldArr.length-1-index] =oldArr[index];38 }39 returnnewArr;40 }41 }

输出结果:

c6d59057d7d650414e02d3b026c0b76a.png

11.元素出现索引(线性搜索)

classArraySearchDemo

{public static voidmain(String[] args)

{int[] arr = {10,20,30,10,50,-30,10};int beginIndex = ArraySearchDemo.indexOf(arr,10);

System.out.println(beginIndex);int endIndex = ArraySearchDemo.lastIndexOf(arr,10);

System.out.println(endIndex);

}/*查询key元素在arr数组中第一次出现的位置

参数:

arr:从哪一个数组中去做查询

key:当前去查询的元素

返回:如果key存在于arr数组中,则返回第一次出现的索引

如果key不存在于arr数组中,则返回-1*/

static int indexOf(int[] arr,intkey){for(int index = 0; index < arr.length; index++){if(arr[index] ==key){returnindex;

}

}return -1;

}//获取key参数在arr数组中最后出现的索引位置

static int lastIndexOf(int[] arr,intkey){for(int index = arr.length-1; index >= 0; index--){if(arr[index] ==key){returnindex;

}

}return -1;

}

}

输出结果:

3ad63802797e5f2abac04f484b40697f.png

这篇关于java语言中数组中的每个数据称为_一、Java语言基础(4)_方法和数组——数组...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/703729

相关文章

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热