龙空技术网

「小颜」java的静态数组的常见操作和求最值案例「9」

教育探讨小王 214

前言:

目前同学们对“java求数组最大值”可能比较珍视,小伙伴们都需要学习一些“java求数组最大值”的相关资讯。那么小编同时在网络上搜集了一些有关“java求数组最大值””的相关资讯,希望你们能喜欢,同学们快快来了解一下吧!

大家晚上好,我是小颜在Study,今天照常打卡自学java第九天,不知不觉已经九天了,离开学越来越近了,到时候会更忙!先不想这么多,大家多多支持啊!奔跑起来!冲冲冲!!!

第九天学习java一、数组初始化之静态初始化

(1)定义:初始化指的是每个数组元素的初始值,由系统决定数组长度(与动态的区别所在

(2)格式:(两种格式,推荐第二种简化的格式)

①数据类型 [ ] 变量名 = new 数据类型 [ ] { 数据1 ,数据2 ……};

举例: int [ ] arr = new int [ ] { 1,2,3,4};

②数据类型 [ ] 变量名 = { 1 ,3,4,5};

举例: int [ ] arr = {1,3,4,5};

(3)数组操作的两个常见小问题。

①索引越界。

解释:就是你定义的长度或者本身长度只有3,而你却去获取第四个索引,这样就会报错。例如:

int [ ] arr = int [ 3 ] ;

System.out.println(arr [ 3 ] ) ;

这样就会报错,因为索引只有0 、1、2。上面你访问了3号索引没有。

②空指针异常:

解释:访问的数组已经不在指向堆内存(即左边的数据)的数据,将会造成空指针异常。例如:

int [ ] arr = int [ 3 ] ;

arr = null;//这时使得原来的数组初始值变成了null,这就造成了空指针异常。

System.out.println(arr [ 3 ] ) ;

③ null :空值,引用数据类型的默认值,表示不指向任何有效对象。

二、数组常见操作

(1)遍历:

在我们学了静态初始化数组之后,我们会发现:

int [ ] arr = {200,3,5,100,3};

这么多数据时,我们应该怎么把它输出出来,按照老方法,我们会这样:

System.out.println(arr [ 0 ]);

System.out.println(arr [ 1 ]);

System.out.println(arr [ 2 ]);

System.out.println(arr [ 3]);

这样是不是太麻烦了,没错,我们可以使用for循环来代替。

哪里是变化的,就是里面的索引是变化的吧,而且还是逐一增加。所以我们可以写成:

for (int x = 0 ; x < 4 ; x ++){

System.out.println(arr [ x]);

}

这样就实现了上述操作,是不是简单多了。这时问题又来了,你会发现,当数组的元素很多时,我们不可能一个一个去数才能确定x的范围。因此,这里我们可以使用一个获取数组元素数量的方法:

格式:数组名.length

因此我们的for循环遍历可以写成这样:

for (int x= 0; x < arr.lenth; x ++){

System.out.println(arr [x]);

}

这样就不管数组有多少,我们都可以一一地把他的内容遍历出来。上述这样的写法也可以是通用格式:

int [ ] arr = {……};

for (int x = 0; x < arr.lenth; x ++ ){

arr[ x ] //这里可以对arr[ x ] 操作。

}

三、案例获取最值

(1)语境:当我们有一堆数据时,例如几个人的年龄,如何从中比较出最大的那个人和最小的那个人。

(2)步骤:

先将它们定义成一个数组,并且定义个max储存它们的最大年龄。

int [ ] arr = { 30 ,12,46,3,18,70,48};

int max;

使用for循环将它们遍历出来。每遍历一个比较一次,也就是我们需要拿一个初始数据去对比。这里我们将索引0作为初始对比数据。

所以先用定义第一个数据:

int max = arr [ 0 ] ;//定义一个初始数据去对比

for (x = 1 ; x < arr .lenth; x ++){

//因为0 已经做初始数据了,所以这里从1开始

if (arr [ x ] > max ){

//每遍历一个数据出来与初始值对比.

max = arr [ x ] ;

}

//最后输出:

System.out.println(“ max :” + max );

}

今天就学习到这里!!!!明天见!!

标签: #java求数组最大值