posts - 1,  comments - 0,  trackbacks - 0
 

之前我们都是针对一个数据类型的数据的运算

如果在问题中,出现大量的相同类型的数据,那么,就要考虑大量数据的运算(也是采用算术,关系,逻辑运算符)

也要考虑大量数据的保存 (采用数组)

一:数组 ***

 1:什么是数组

由一组相同数据类型的数据的组合

 2:数组的定义的语法是什么呢

       声明数组的语法//声明数组的意思 就是告诉计算机内存,要保留一段某数据类型的空间大小,这时候没有数据存入

       数据类型 标识符[ ]; //标识符 就是数组名,也要符合变量的命名规范

 int    int_array[]; 

 String []str; //[] 中括号可以放在标识符的前面,也可以在后面

 利用new 来为数组型变量分配内存空间

array_int=new int[10]; //就是说真正在内存中分配10个大小的int类型的空间,数据全部默认为0

str=new String[10];//在内存中分配10个大小的字符串类型的空间,数据全部为null

 声明数组分配空间完全可以写成一个,叫数组定义

       int a[]=new int[10]; // 10 大小必须是整型,并且必须写

       //在内存中分配了10int类型的空间,每个空间都默认为0 第一个空间的地址为a

 例子:

       //这个例子要大家学会怎么定义数组,怎么输出数组的数据

       int a[]=newint[10];

       //String a[]=new String[10];

      

       //输出数组中的数据的值 int类型默认的数据为0

       for(int i=0;i<a.length;i++){//i<10 可以写成i<a.length

           System.out.print(a[i]);//怎么得到数据 a[i] i不能超过数组的长度0开始

       }

       System.out.println();

       int b1=10;

       int a1[]=newint[b1];

       //输出数组中的数据的值

       for(int i=0;i<10;i++){

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

       }

3:数组的初始化(也就是说怎么给数组赋值)

   a:在定义的时候可以赋值

        //数组在定义的时候,可以赋值--叫数组的初始化

       //注意:数组的大小(长度)不要写,由赋值的数据的多少决定长度

       int a[]=newint[]{1,2,3,4,5,6};

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

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

       }

   b:通过循环可以给数组赋值

          

       int a[]=newint[6];

       //通过循环赋值给数组a

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

           a[i]=i;

       }

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

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

       }

   

   一维数组的例子:从键盘输入5个整数,求这5个数的最大值

    //从键盘输入5个整数,求这5个数的最大值

       Scanner s=new Scanner(System.in);

       System.out.println("请从键盘输入5个整数:");

       int a[]=newint[5];

       //给数组a赋值

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

           a[i]=s.nextInt();//从键盘输入的时候,要回车

       }

       System.out.println();

       //输出数组a的数据

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

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

       }

      

       //求最大值

       int max=a[0];//max的值为a[0]

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

           if(a[i]>max){

              max=a[i];

           }

       }

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

  例子2:从键盘输入5个整数,请按照升序排列输出

       //从键盘输入5个整数,请按照升序排列输出

       Scanner s=new Scanner(System.in);

       System.out.println("请从键盘输入5个整数:");

       int a[]=newint[5];

       //给数组a赋值

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

           a[i]=s.nextInt();//从键盘输入的时候,要回车

       }

       System.out.println();

      

       //冒泡排序的规律:记住并且理解的

       //第一个循环的 i<数组的长度-1

       //第二个循环的 j<数组的长度-i-1

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

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

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

                  //交换数据

                   int temp=a[j];

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

                   a[j+1]=temp;

              }

           }

       }

      

      

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

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

       }

4:二维数组的定义

    如果有行与列的数据,那么采用2维数组,

   2[]符号

 二维数组的语法(标准定义)

    数据类型标识符[][]=new 数据类型[行的大小][列的大小];

    int a[][]=new int[3][3];//也就是定义33列的数据,00列开始

int a[][]=newint[][]{{1,2,3},{4,5,6}};////可以初始化赋值

       //也可以循环赋值

       //输出

       for (int i = 0; i < a.length; i++) {//a.length 就是求出的行数

           for (int j = 0; j < 3; j++) {

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

           }

           System.out.println();

       }

   例子:定义一个33列的数据,求对角线数据的和

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

      

       int sum=0;

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

           for (int j = 0; j < 3; j++) {

               if(i==j){

                  sum=sum+a[i][j];

               }

           }

          

       }

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

      

       sum=0;

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

           for (int j = 0; j<3; j++) {

               if((i+j)==2){

                  sum=sum+a[i][j];

               }

           }

          

       }

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

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

sum=15

sum=15

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

    at test.Test.main(Test.java:32)

错误的原因是执行System.out.println(a[3][3]);这行时候出错

ArrayIndexOutOfBoundsException 数组索引超过范围

posted on 2010-06-04 15:10 gjy 阅读(125) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: