java数组

一:概念

       数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。 数组既可以存储基本数据类型,也可以存储引用数据类型。 长度是固定的。

二:定义格式

 1、数据类型[] 数组名; (推荐使用第一种)
 2、数据类型 数组名[];

 例:int[] arr

三:初始化

 1、动态初始化:在定义时候只给定数组的长度,值是由系统默认给出的。
            语句定义格式:数据类型[] 数组名 = new 数据类型[元素的个数];
            

 2、静态初始化:在定义的时候,就手动给出元素值。
            语句定义格式:数据类型[] 数组名 = new 数据类型[]{元素值1,元素值2...};
            简化格式:数据类型[] 数组名 = {元素值1,元素值2...};

public class Practice {
    public static void main(String[] args) {
        int[] arr= new int[4];//动态初始化,定义了一个长度为四的数组。
        int[] arr2={1,2,3,4}; //静态初始化,定义了一个元素值为1,2,3,4长度为4的数组。

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

}

四:数组遍历

  数组遍历:
        获取的长度的属性:length
        使用格式:数组名.length

五:实战案例

 1、数组遍历(依次输出数组中的每一个元素,形式为[1,2,3,4......]) 

public class Practice {
    public static void main(String[] args) {
       int[] arr1={1,3,4,6,3,6,4,6,534,3,5,5434,5,9,8,2,64,345};
        sa(arr1);

    }
    public static void sa(int[] arr){
        for(int i=0;i<arr.length;i++){
            if(i==0){
                System.out.print("["+arr[i]+",");
            }else if(i==arr.length-1){
                System.out.print(arr[i]+"]");
            }else {
                System.out.print(arr[i]+",");
            }
        }
    }

}
//结果wei:[1,3,4,6,3,6,4,6,534,3,5,5434,5,9,8,2,64,345]

 2、获取数组中的最大值

//获取数组中的最大值
public class Practice {
    public static void main(String[] args) {
       int[] arr1={1,3,4,6,3,6,4,6,534,3,5,5434,5,9,8,2,64,345};
        int max=sa(arr1);
        System.out.println("最大值为:"+max);

    }
    public static int sa(int[] arr){
        int t=arr[0];
        for(int i=0;i<arr.length;i++){
            if(arr[i]>t){
                t=arr[i];
            }
        }
        return t;
    }

}
//结果为:最大值为:5434

 3、数组元素逆序 (就是把元素对调)

//数组元素逆序 (就是把元素对调)

public class Practice {
    public static void main(String[] args) {
        int[] SuZu1 = {1, 2, 3, 4, 5, 6, 7};
        System.out.print("原数组为:");
        printArray(SuZu1);

//      int[] JieGuo1=sa1(SuZu1);//调用第一种方法,返回值给了suzu1,suzu1已经变成了逆序
//      System.out.print("\r\n逆序后为:");
//      printArray(JieGuo1);

//      int[] JieGuo2=sa2(SuZu1);//调用第二种方法,此方法调用了一个新的数组,返回值给了新数组,suzu1不变。
//      System.out.print("\r\n逆序后为:");
//      printArray(JieGuo2);

        int[] JieGuo3 = sa3(SuZu1);//调用第三种方法,此方法和第一个相同。
        System.out.print("\r\n逆序后为:");
        printArray(JieGuo3);


    }

    public static int[] sa1(int[] arr) {  //将第一个数与最后一个数调换,第二个数和倒数第二个调换,以此类推,完成逆序。
        for (int i = 0; i < arr.length / 2; i++) {
            int t = arr[arr.length - i - 1];
            arr[arr.length - i - 1] = arr[i];
            arr[i] = t;
        }
        return arr;
    }

    public static int[] sa2(int[] arr) { //用一个新的数组去逆序的接收目标数组。
        int[] arr1 = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            arr1[arr.length - i - 1] = arr[i];
        }
        return arr1;
    }

    public static int[] sa3(int[] arr) { //用第一个和第二个调换,在把第二个与第三个调换。。。直到最后一个,第一个被换到了最后;
        for (int i = arr.length - 1; i > 0; i--)//在用第一个第二个。。这次换到倒数第二个;以此类推。
            for (int j = 0; j < i; j++) {
                int t = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = t;
            }
        return arr;
    }


    public static void printArray(int[] arr) {   //标准格式输出数组的方法
        for (int i = 0; i < arr.length; i++) {
            if (i == 0) {
                System.out.print("[" + arr[i] + ",");
            } else if (i == arr.length - 1) {
                System.out.print(arr[i] + "]");
            } else {
                System.out.print(arr[i] + ",");
            }
        }
    }

}

 4、数组查表法(根据键盘录入索引,查找对应星期)

/*
        数组查表法(根据键盘录入索引,查找对应星期)
 */
import java.util.Scanner;

public class Practice {
    public static void main(String[] args) {
        String[] week = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};
        Scanner sc = new Scanner(System.in);

        boolean falg=true;

        while(falg) {
            System.out.println("请输入一个正确的数:");
            int a= sc.nextInt();
            if (a > 0 & a < 8) {
                System.out.println("对应的星期为:" + week[a-1]);
                falg=false;
            }else {
                System.out.println("输入的数据有误,请重新输入!");
            }
        }

    }
}

六:二维数组

 1、概念:元素是由一维数组组成的数组。

 2、定义:

    (1)定义格式一:
        数据类型[][] 数组名 = new 数据类型[m][n];
        m:表示的是有多少个一维数组
        n:表示的一维数组的元素个数
        举例:int[][] arr = new int[3][2];    
        表示的是定义一个有3个长度为2的一维数组组成的二维数组。
    
    (2)定义格式二:
        数据类型[][] 数组名 = new 数据类型[m][];
        m:表示的是有多少个一维数组
        举例:int[][] arr = new int[4][];  //表示有4个一维数组

    (3)定义格式三:
        数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2,元素3...},...};
        简化格式:数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2,元素3...},...};

   (4)注意:
        1、以下几种写法也是二维数组
            数据类型[] 数组名[];
            数据类型 数组名[][];
        2、格式3不能与格式1、格式2混合使用。
            错误格式:int[][] arr = new int[2][]{{1,2},{3,1,2}};

3、实战案例:

(1)二维数组遍历求和操作:用二重循环求出二维数组b所有元素的和:
         int[][] b={{11},{21,22},{31,32,33}};

public class SuZu5 {
    public static void main(String[] args) {
        int[][] b={{11},{21,22},{31,32,33}};
        int a=printA(b);
        System.out.println(a);
        
    }
    public static int printA(int[][] arr ){
        int sum=0;
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
               sum+=arr[i][j];
            }
        }
        return sum;
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值