Java数组

数组的初始化:

 int[] arr = new int[3];

 System.out.println(arr[3]);//运行时会报一个数组角标越界异常(ArrayIndexOutOfBoundsException)

 int[] arr = new int[3];

 arr = null;

 System.out.println(arr[1];//运行时会报空指针异常(NullpointerException)

 

数组的操作:

获取数组中的元素,通常会用到遍历;

数组中有一个属性可以直接获取到数组元素的个数,数组名称.length;

 

最值获取:


public class T1 {

/**
 * 获取数组中的最大值和最小值:
思路分析:
1.       获取最值需要进行比较,每一次比较都会有一个较大的值,因为该值不确定。通过一个变量进行临时存储。
2.       让数组中的每一个元素都和这个变量中的值进行比较,如果大于变量中的值,就用该变量记录较大值。
3.       当所有的元素都比较完成时,那么该变量中存储的就是数组中的最大值了。
步骤:
1.定义一个变量进行临时存储,并初始化为数组中的任意一个元素值:int max= arr[0];
2.定义一个for循环遍历数组中的所有元素:for(int x =1;x < 7;x ++){};
3.条件判断,记录较大值:if(arr[x] > max) max = arr[x];
定义一个功能,实现以上步骤,以便于复用;
1.明确结果类型,数组中的最大值:int;
2.明确有内容参与:int[] arr;

 */

    public static void main(String[] args) {

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

         int Max = getmax(arr);

         int Max1 = getmax1(arr);

         int Min = getmin(arr);

         System.out.println("Max =" + Max);

         System.out.println("Max1 =" + Max1);

         System.out.println("Min =" + Min);

    }

    public static int getmax(int[] arr)

    {

           int max = arr[0];

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

                  if (arr[x] > max){

                         max = arr[x];//交换元素

                  }

           }

           return max;

    }

    /*

    获取最大值的另一种方式:
    可不可以将max初始化为0?如果使用第一种方式,是不可以的,因为数组元素有可能出现的都是负数,
    这样最大就变成0了,然而把max看做数组元素的角标,就可以了;
    */

      public static int getmax1(int[] arr){
             int max = 0;
             for (int x = 1;x < arr.length;x++ ) {
                    if (arr[x] > arr[max]){
                           max = x;//交换下标
                    }
             }
             return arr[max];
      }
      public static int getmin(int[] arr) {
             int min = 0;
             for (int x = 1;x < arr.length;x ++ ){
                    if (arr[x] < arr[min])  {
                           min = x;
                    }
             }
             return arr[min];
      }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值