数组

1.      一维数组
(1)      数组的声明

两种方式:数据类型[] 数组名;(例:int[] arr;)

          数据类型 数组名[];(例:int arr[];)

(2)      数组的创建

先声明后创建:数据类型[]数组名;

              数组名 = new 数据类型[数组长度];

声明的同时创建:

              数据类型[] 数组名= new 数据类型[数组长度];

注意:数组长度必须指定,且具有默认值

(3)      数组的初始化

声明数组的同时给数组赋值

例:Int[] arr ={1,2,3,4,5,6,7,8,9};

(4)      数组元素的引用

格式:数组名[下标];    //下标从0开始

(5)      数组长度:属性length表示数组的长度

如:a.length

练习:

//声明int型一个数组

    int[] myint;

    //声明一个double型数组

    doublemydouble[];

    //创建数组

    myint = newint[5];

    mydouble = newdouble[10];

    //声明的同时创建数组

    float[] myfloat = newfloat[8];

    //数组初始化

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

    //输出数组arr的第二个数字

    System.out.println("数组arr中的第二个数字为:"+arr[1]);

    //输出数组arr的长度

    System.out.println("数组arr的长度为:"+arr.length);

    //为数组myint赋值

    for(inti=0;i<myint.length;i++) {

       myint[i]=i+1;

    }

    //打印输出数组myint内的数字

    System.out.print("数组中的数字为:");

    for(inti=0;i<myint.length;i++) {

      

       System.out.print(myint[i]+"  ");

    }

例:数组的累加求和

//创建一个数组

       int[] a = newint[10];

       Scanner sc = new Scanner(System.in);

      

       for(inti=0;i<a.length;i++) {

          System.out.println("请输入一个数字:");

          a[i]=sc.nextInt();

         

       }

       //数组求和

       intsum = 0;

       for(inti=0;i<a.length;i++) {

          sum = sum+a[i];

         

       }

   System.out.println("数组中的元素之和为:"+sum);

例:求数组的最大值

//创建数组

      int[] a = newint[5];

      //为数组赋值

      for(inti=0;i<a.length;i++) {

         Scannersc= newScanner(System.in);

         System.out.println("请输入数字:");

         a[i]=sc.nextInt();

         }

      //求最大值

      intmax=a[0];

      for(inti=1;i<a.length;i++) {

        

         if(a[i]>max) {

            max=a[i];

         }

      }

      System.out.println("最大值为:"+max);

例:冒泡排序

//定义数组

      int[] a = newint[7];

      //为数组赋值

      Scannersc= newScanner(System.in);

      for(inti=0;i<a.length;i++) {

         System.out.println("请输入数字:");

         a[i] = sc.nextInt();

        

      }

      //打印输出原数组的值

      System.out.print("原数组的值为:");

      for(inti=0;i<a.length;i++) {

         System.out.print(a[i]+" ");

      }

      System.out.println();

      //排序

      intnum;

      for(inti=0;i<a.length-1;i++) {

         for(intj=0;j<a.length-i-1;j++) {

            if(a[j]>a[j+1]) {

                num=a[j+1];

                a[j+1]=a[j];

                a[j]=num;

            }

         }

      }

      //输出排序后的数组

      System.out.print("排序后数组的值为:");

      for(inti=0;i<a.length;i++) {

         System.out.print(a[i]+" ");

    }

2.      二维数组
(1)      声明

三种方法:数据类型[][] 数组名;  (例:int[][] arr;)

          数据类型 数组名[][] ; (例:intarr[][];)     

                    数据类型[] 数组名[] ; (例:int[]arr[];)

(2)      创建

数据类型[][] 数组名 = new 数据类型[行数] [列元素个数];

注意:行数必须给出,列元素个数可先不给出

例:int[][]  arr = new int[3][3];

或:int[][] arr = new int[3][];

arr[0]=new int[2];     //第一行有两列

arr[1] =new int[4];    //第二行有四列

arr[2] = new int[3];   //第三行有三列

(3)      初始化二维数组

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

(4)      增强for循环(又叫foreach循环)

例:int arr = {1,2,3,4};

for(int n : arr){

System.out.println(n);

}

 

例:int[][] a ={{1,2,3},{4,5,6},{7,8,9}};

      System.out.print("数组元素有:");

      inti=0;              //外层循环计数器变量

      for(intx[]:a) {

         i++;

         intj=0;          //内层循环计数器变量

         for(intn:x) {

            j++;

            if(i==a.length&&j==x.length) {  

//判断是否为二维数组的最后一个元素

                System.out.print(n);

               

            }else {

                System.out.print(n+"");

            }

         }

      }

import java.util.Scanner;

publicclassGetArr7 {

 

   publicstaticvoid main(String[] args) {

    //在一个二维数组中存放了三个学生的语文和数学成绩,从键盘输入三名

   //学生的成绩存储到二维数组中分别求语文、数学的总成绩和平均分并输出

      int[][] a = newint[3][2];           //定义一个int型二维数组

      char [][] sub = {{'',''},{'',''}};

      //从键盘输入3个学生的语文和数学成绩

      for(inti=0;i<a.length;i++) {

         for(intj=0;j<a[i].length;j++) {

            Scannersc= newScanner(System.in);

   System.out.print(""+(i+1)+"名学生的"+sub[j][0]+sub[j][1]+"成绩为:");

            a[i][j] = sc.nextInt();

           

         }

      }

      //输出

      int[] sum = newint[2];

      for(intj=0;j<a[j].length;j++) {

         for(inti=0;i<a.length;i++) {

            sum[j]=sum[j]+a[i][j];             //单科求和

           

         }

        

         System.out.print(sub[j]);     

         System.out.println("总成绩为:"+sum[j]);

         System.out.print(sub[j]);

         System.out.println("平均分为:"+sum[j]/3);

      } 

   }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值