java date20150820

来源:互联网 发布:ansys软件报价 编辑:程序博客网 时间:2024/04/29 23:14

回顾:数组是具体相同数据类型的变量的集合;前面主要讲了一维数组,以及一维数组的声明和空间开辟,
     一维数组的定义格式;一位数组初始化格式;一维数组元素的访问方式;length实例变量的使用;数组的深入使用:数组的
    拷贝(浅拷贝和深拷贝);数组的排序(冒泡排序)
本节主要学习点:
    二维数组、多维数组
--------------------------------------------------------------------------------------------------------------
一、二维数组
为什么需要二维数组?
因为一维数组只够存相同数据类型的变量,但是有一些数据是由行列矩阵组成,那二维数组就是可以满足这些条件
二维数组定义:
  是由多个一维数组组成的相同数据类型的变量的集合;
二维数组也分为两部分:
 1、数组的声明;
   声明格式: 数据类型[][] 数组名 ;
 2、开辟空间;
  格式:new 数据类型[行数][列数];
   注:行数、列数表示的就是这个二维数组数据由几行几列组成的;
      行数:也表示的这个二维数组有多少个一维数组组成;
      列数:表示的这个二维数组中每个一维数组是由多少个元素组成的;
二维数组格式如下:
    数据类型[][] 数组名 = new 数据类型[行数][列数];
二维数组初始化格式如下:
    数据类型[][] 数组名 = {
                           {  },
      {  },
      ...
                                 }
二维数组的元素的访问:
       数组名[行数下标][列数下标];
  注:行数下标即一维数组下标,因为下标都是从0开始的,所以其下标范围[0,数组名.length-1]或[0,数组名.length);
      列数下标即一维数组下每个元素的下标,也因为下标都是从0开始的,所以其下标范围[0,数组名[行数下标].length-1]
      或[0,数组名[行数下标].length);
例:
public class Demo2 {

 public static void main(String[] args) {
  // 创建一个二维int型数组
//  int[][] array1 = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 },
//    { 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 },
//    { 21, 22, 23, 24, 25 }, };
//  另一种创建方式
  int[][] array1 = new int[5][5];   
  int k = 1;
  System.out.println("输出数组array1:");
                //利用双重循环访问数组
  for (int i = 0; i < array1.length; i++) {             //定义行数的下标
   for (int j = 0; j < array1[i].length; j++) {    //定义列数的下标
    array1[i][j] = k++;                    //访问二维数组的元素需执行满足条件的循环语句
    System.out.print(array1[i][j] + " ");
   }
   System.out.println();
  }

 }

}
输出结果:
输出数组array1:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
----------------------------------------------------------------------------------------------------------------
二、不规则数组
不规则数组定义:
    Java中多维数组实质上都是一维数组,每个数组的数组元素个数即每个数组的数组大小是可以不同的,即
 是不规则数组;注:不规则数组的行数在数组声明时必须确定,列数可以再确定;
  例:      int[][] array2 = new int[4][];
  array2[0] = new int[1];
  array2[1] = new int[2];
  array2[2] = new int[3];
  array2[3] = new int[4];
   含义:在array2二维数组中声明时首先确定了它的行数,即是由4个一维数组组成的二维数组,但其列数未确定;
        后确定各行的列数即是确定各个一维数组的元素个数,第一个一维数组中有1个元素,第二个中有2个元素,
        第三个中有3个元素,第四个一维数组中有4个元素;这个数组是一个不规则的二维数组;
例1:
public class Demo3 {

 public static void main(String[] args) {
  // 创建一个不规则的二维数组
  int[][] array2 = new int[4][];
  // 指定各行的列数
  array2[0] = new int[1];
  array2[1] = new int[2];
  array2[2] = new int[3];
  array2[3] = new int[4];
  int k = 1;
  // 利用双重循环访问数组,对数组元素进行赋值
  for (int i = 0; i < array2.length; i++) {
   for (int j = 0; j < array2[i].length; j++) {
    array2[i][j] = k++;
    System.out.print(array2[i][j] + " ");
   }
   System.out.println();
  }
 }

}
输出结果:
1
2 3
4 5 6
7 8 9 10

例2:用数组算银行各种利率增长情况
------------------------------------------------------------------------------------------------------
三、for...each循环语句
它是for循环的一种缩写形式,for...each主要用在集合(或数组)中,从开始到结束循环;
for...each循环的一般使用,其一般格式如下:
for(数据类型 变量 :集合){
   语句块;
}
其数据类型表示的是集合的数据类型,接着是一个元素用于进行操作,它代表当前集合访问的元素,最后是要访问的集合;
for...each循环访问一维数组的使用格式如下:
int[] array1 = {1,2,3,4,5};
int sum = 0;
for(int i=0;i<array.length;i++)
  sum += array1[i];
System.out.println(array[i]);

用for...each的格式如下:
int[] array1 = {1,2,3,4,5};
int sum = 0;
for(int iVal : array1)
  sum += iVal;
System.out.println(iVal);

例:
public class Demo6 {

 public static void main(String[] args) {
  int[] array1 = { 1, 2, 3, 4, 5, 6 };
  int iSum = 0;
  for (int iVal : array1) {
   iSum += iVal;
   System.out.print(iVal + " ");
  }
 }

}
输出结果:
1 2 3 4 5 6
for...each循环是可以访问多维数组的
for...each循环访问多维数组的使用格式如下:
int[][] array2 = new int[5][5];
int sum = 0;
for(int x[] : array2)
  for(int y : x)
  sum += y;
System.out.println(y);
例1:public class Demo6 {

 public static void main(String[] args) {
  int[][] array2 = { { 1, 3, 5 }, { 2, 4, 6 }, };
  for (int x[] : array2) {
   for (int y : x) {
    System.out.print(y+" ");
   }
  }
 }
}
输出结果:
1 3 5 2 4 6
例2:
public class Demo6 {

 public static void main(String[] args) {
  int k = 1;
  int[][] array2 = new int[5][5];
  for (int i = 0; i < array2.length; i++) {
   for (int j = 0; j < array2[i].length; j++) {
    array2[i][j] = k++;
   }
  }
  for (int x[] : array2) {
   for (int y : x) {
    System.out.print(y + " ");
   }
   System.out.println();
  }
 }
}
输出结果:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

 

0 0
原创粉丝点击