Java的编程之旅13——数组

1.数组的定义

<数据类型>[ ]  <数组名> = new <数据类型>[数组元素个数]

<数据类型>[ ]  <数组名> = {元素1,元素2,元素3,...元素n};

例如:定义一个名为arr,元素个数为10的整型数组

int[] arr = new int[10]; //输出结果为[I@1b6d3586
int[] arr = {1,2,3,4,5,6,7,8,9,0};

 注:

[表示的是数组

I表示的是Integer整数类型

@ 表示后面要显示的是内存地址

1b6d3586表示16进制的物理地址

2.遍历数组中元素

int[] arr = new int[10];
for(int i = 0;i < arr.length;i++){
    arr[i] = i + 1;
    System.out.print(arr1[i]+"\t");
}

这段代码定义了一个长度为10的整数数组arr,并且用一个for循环为数组的每个元素赋值。循环的初始条件为i等于0,继续条件为i小于数组的长度,每次循环结束后i自增1。循环体内的语句为arr[i] = i+1,表示将数组的第i个元素赋值为i+1。然后使用System.out.print()方法打印出数组中的每个元素,并用制表符进行分隔,以便每个元素之间有空格。最终的输出结果为1 2 3 4 5 6 7 8 9 10。

 1.正向遍历数组

int[] arr = {1,2,3,4,5,6,7,8,9,0};
for(int i = 0;i < arr.length; i++){
    System.out.print(arr[i] + " ")
}

2.逆向遍历数组

int[] arr = {1,2,3,4,5,6,7,8,9,0};
for(int j = arr.length-1;j >= 0;j--){
    System.out.print(arr[j] + " ");
}

这段代码是用来将数组arr中的元素逆序输出。

首先,声明了一个整型数组arr,并初始化了数组元素为1,2,3,4,5,6,7,8,9,0。

然后,通过for循环进行遍历数组arr。循环变量j从数组的最后一个元素的下标开始遍历(即arr.length-1),每次循环结束后使j递减。

在循环体内,使用System.out.print()方法输出arr[j]的值,并加上一个空格。

最终的输出结果为:0 9 8 7 6 5 4 3 2 1,即将数组arr中的元素逆序输出。

3.找最值

思想:从头开始,定义第一个数组元素maxArray=arr[0],
for循环逐一遍历数组中元素,判断arr[i]是否大于maxArray,
如果大,将arr[i]赋值给maxArray 
Random ran = new Random();
int[] arr = new int[10];
for(int i = 1 ; i <= arr.length ; i++)
{
    arr[i] = ran.nextInt(100);
    System.out.print(arr[i] + " ");
}

int[] maxArray = arr[0];
for(int i = 1 ; i <= arr.lenghth ; i++)
{
    if(arr[i] > maxArray){
        maxArray = arr[i];
    }
}
System.out.println(maxAarry);

这段代码的目的是生成一个包含随机整数的数组,并找出数组中的最大值。

首先,通过Random类创建了一个ran对象,用于生成随机数。然后,声明了一个长度为10的整型数组arr。

接下来,通过for循环遍历数组arr的每一个元素。循环变量i从1开始遍历,直到i等于数组的长度为止。

在循环体内,使用ran.nextInt(100)方法生成一个介于0到100之间(不包括100)的随机整数,并将其赋值给arr[i]。然后使用System.out.print()方法将arr[i]的值输出,并加上一个空格。

接着,声明了一个名为maxArray的整型数组,并将数组arr的第一个元素赋值给maxArray。注意,这里应该是将arr的第一个元素赋值给maxArray,而不是将maxArray赋值为arr的第一个元素。

再次使用for循环遍历数组arr的每一个元素。循环变量i从1开始遍历,直到i等于数组的长度为止。

在循环体内,使用if语句判断arr[i]是否大于maxArray。如果是,则将arr[i]赋值给maxArray。

最后,使用System.out.println()方法将maxArray的值输出。注意,这里应该是输出maxArray的值,而不是输出maxAarry。

总结:这段代码首先生成了一个包含随机整数的数组,并将数组的元素逐个输出。然后,找出数组中的最大值,并将其输出。

4.找最大值所在的下标

思路:

1.通过随机数,并使用for循环输出一组随机数组

2.定义最大值所在下标maxIndex = 0

3.再次遍历数组,判断数组中元素是否大于最大值所在下标,若大于,将数组元素下标赋值给最大值元素下标

Random ran = new Random();
int[] arr = new int[];
for(int i = 0;i < arr.length;i++){
    arr[i] = ran.nextInt(10);
    System.out.print(arr[i] + " ");
}
int maxIndex = 0;
for(int i = 0;i < arr.length;i++){
    if(arr[i]>arr[maxIndex]){
        maxIndex = i;
    }
    System.out.printf(arr[%d] = %d ,maxIndex,arr[maxIndex]);
}

这段代码的目的是生成一个包含随机整数的数组,并找出数组中的最大值以及最大值的索引。

首先,通过Random类创建了一个ran对象,用于生成随机数。然后,声明了一个未指定长度的整型数组arr。

在for循环中,通过arr.length可以获取到arr数组的长度,根据长度创建了一个与arr长度相同的数组。

接下来,使用for循环遍历数组arr的每一个元素。循环变量i从0开始遍历,直到i小于arr.length为止。

在循环体内,使用ran.nextInt(10)方法生成一个介于0到10之间(不包括10)的随机整数,并将其赋值给arr[i]。然后使用System.out.print()方法将arr[i]的值输出,并加上一个空格。

在第二个for循环中,使用循环变量i遍历数组arr的每一个元素。

在循环体内,使用if语句判断arr[i]是否大于arr[maxIndex]。如果是,则将i赋值给maxIndex。即,找到当前的最大值的索引。

最后,使用System.out.printf()方法将最大值的索引和对应的数组元素输出。

总结:这段代码首先生成了一个包含随机整数的数组,并将数组的元素逐个输出。然后,找出数组中的最大值以及最大值的索引,并将对应的索引和数组元素输出。

5.通过数找数所在下标

思路:

1.通过随机数,并使用for循环输出一组随机数组

2.通过输入函数输入一个数num

3.再次遍历数组,判断这个数是否等于数组元素,若等于则停止比较,跳出循环

Random ran = new Random();
int[] arr = new int[10];
for(int i = 0;i < arr.length;i++){
    arr[i] = ran.nextInt(100);
    System.out.print(arr[i]+ " ");
}
System.out.print("输入一个数:");
int num = new Scanner(System.in).nextInt();
int i;
for( i = 0;i < arr.length;i++){
    if(num==arr[i])
        break;
}
if(i < arr.length){
    System.out.println(num + "不在数组中");
    System.exit(0);
}

System.out.printf(num+"在数组中第"+(i+1)+"个位置");

这段代码的功能是生成一个包含10个随机整数的数组,并从用户输入中查找指定的数值在数组中的位置。具体解释如下:

首先,使用Random类创建一个名为ran的随机数生成器对象。

然后,创建一个名为arr的整型数组,长度为10。

接下来,使用for循环将随机数赋值给数组中的每一个元素,并使用System.out.print语句打印数组的内容,每个数字之间用空格隔开。

紧接着,使用System.out.print语句提示用户输入一个数,并使用Scanner类从用户输入中获取一个整数,存储在名为num的变量中。

然后,使用for循环在数组中查找num值的位置。如果找到了相应的位置,即num与arr[i]相等,则终止循环。

如果循环结束之后i的值小于数组的长度,说明找到了num值,则使用System.out.println语句输出num不在数组中的信息,并使用System.exit(0)语句终止程序。

如果循环结束之后i的值等于数组的长度,说明没有找到num值,则使用System.out.printf语句输出num在数组中的位置,即数组的第(i+1)个位置。

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惊爆点大男主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值