第3章 JSP语法基础--JAVA基础知识

来源:互联网 发布:db2 oracle sqlserver 编辑:程序博客网 时间:2024/06/11 03:25
3.6  JAVA数组

  java语言中,数组是一种最简单的复合数据类型。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。
1、关于数组的特点
  1)在Java中,无论使用数组或容器,都有边界检查。如果越界操作就会得到一个RuntimeException异常。
  2)数组只能保存特定类型。数组可以保存基本类型,容器则不能。容器不以具体的类型来处理对象,它们将所有对象都按Object类型处理。
  3)容器类只能保存对象的引用。而数组既可以创建为直接保存基本类型,也可以保存对象的引用。在容器中可以使用包装类,如Integer、Double等来实现保存基本数据类型值。
  4)对象数组和基本类型数组在使用上几乎是相同的;唯一的区别是对象数组保存的是引用,基本类型数组保存基本类型的值。

2、定义数组
2.1 一维数组
2.1.1. 一维数组的定义
  type arrayName[ ];
  类型(type)可以为Java中任意的数据类型,包括简单类型和复合类型。
  例如:
   int intArray[ ];
   Date dateArray[];
2.1.2. 一维数组的初始化
◇ 静态初始化
    int intArray[]={1,2,3,4};
    String stringArray[]={"abc", "How", "you"};
  ◇ 动态初始化
    1)简单类型的数组
    int intArray[];
    intArray = new int[5];
   2)复合类型的数组
    String stringArray[ ];
    String stringArray = new String[3];/*为数组中每个元素开辟引用空间(32位) */
    stringArray[0]= new String("How");//为第一个数组元素开辟空间
    stringArray[1]= new String("are");//为第二个数组元素开辟空间
    stringArray[2]= new String("you");// 为第三个数组元素开辟空间
2.1.3.一维数组元素的引用
  数组元素的引用方式为:
     arrayName[index]
  index为数组下标,它可以为整型常数或表达式,下标从0开始。每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。
例子:
public class Arrays {
 public static void main(String[] args) {
  int[] a1 = { 1, 2, 3, 4, 5 };
  for (int i = 0; i < a1.length; i++)
   System.out.println("a1[" + i + "] = " + a1[i]);
  int[] a2;
  a2 = a1;
  for (int i = 0; i < a2.length; i++)
   a2[i]++;
  System.out.println("-----after change a2------");
  for (int i = 0; i < a1.length; i++)
   System.out.println("a1[" + i + "] = " + a1[i]);
  System.out.println("-----after change a2[0]------");
  a2[0] = 333;
  System.out.println("a2[0]=" + a2[0]);
  System.out.println("a1[0]=" + a1[0]);
  System.out.println("----- a2------");
  for (int i = 0; i < a2.length; i++)
   System.out.println("a2[" + i + "] = " + a2[i]);
 }
}
输出结果:
a1[0] = 1
a1[1] = 2
a1[2] = 3
a1[3] = 4
a1[4] = 5
-----after change a2------
a1[0] = 2
a1[1] = 3
a1[2] = 4
a1[3] = 5
a1[4] = 6
-----after change a2[0]------
a2[0]=333
a1[0]=333
----- a2------
a2[0] = 333
a2[1] = 3
a2[2] = 4
a2[3] = 5
a2[4] = 6
2.2 多维数组
2.2.1.二维数组的定义
  type arrayName[ ][ ];
  type [ ][ ]arrayName;
2.2.2.二维数组的初始化
  ◇ 静态初始化
  int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};
  Java语言中,由于把二维数组看作是数组的数组,数组空间不是连续分配的,所以不要求二维数组每一维的大小相同。
  ◇ 动态初始化
  1) 直接为每一维分配空间,格式如下:
  arrayName = new type[arrayLength1][arrayLength2];
  int a[ ][ ] = new int[2][3];
  2) 从最高维开始,分别为每一维分配空间:
  arrayName = new type[arrayLength1][ ];
  arrayName[0] = new type[arrayLength20];
  arrayName[1] = new type[arrayLength21];
  …
  arrayName[arrayLength1-1] = new type[arrayLength2n];
  3) 例:
  二维简单数据类型数组的动态初始化如下,
  int a[ ][ ] = new int[2][ ];
  a[0] = new int[3];
  a[1] = new int[5];
  对二维复合数据类型的数组,必须首先为最高维分配引用空间,然后再顺次为低维分配空间。
  而且,必须为每个数组元素单独分配空间。
  例如:
  String s[ ][ ] = new String[2][ ];
  s[0]= new String[2];//为最高维分配引用空间
  s[1]= new String[2]; //为最高维分配引用空间
  s[0][0]= new String("Good");// 为每个数组元素单独分配空间
  s[0][1]= new String("Luck");// 为每个数组元素单独分配空间
  s[1][0]= new String("to");// 为每个数组元素单独分配空间
  s[1][1]= new String("You");// 为每个数组元素单独分配空间
2.2.3.二维数组元素的引用
     对二维数组中的每个元素,引用方式为:arrayName[index1][index2]
  例如: num[1][0];
2.2.4.二维数组举例:
例子:
public class MatrixMultiply{
  public static void main(String[] args) {
    int i, j, k;
    int a[][] = new int[2][3];
    int b[][] = {{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};
    int c[][] = new int[2][4];
    for(i=0; i<2; i++)
      for(j=0; j<3; j++)
        a[i][j]=(i+1)*(j+2);
    for(i=0; i<2; i++){
      for(j=0; j<4; j++){
        c[i][j]=0;
        for(k=0; k<3; k++)
          c[i][j]+=a[i][k]*b[k][j];
        System.out.println("c["+i+"]["+j+"]="+c[i][j]);
      }
    }
    System.out.println("***MatrixA***");
    for(i=0; i<2; i++){
      for(j=0; j<3; j++)
        System.out.print(a[i][j]+" ");
      System.out.println();
    }
    System.out.println("***MatrixB***");
    for(i=0; i<3; i++){
      for(j=0; j<4; j++)
        System.out.print(b[i][j]+" ");
      System.out.println();
    }
    System.out.println("***MatrixC***");
    for(i=0; i<2; i++){
      for(j=0; j<4; j++)
        System.out.print(c[i][j]+" ");
      System.out.println();
    }
  }
}  
输出结果:
c[0][0]=25
c[0][1]=65
c[0][2]=14
c[0][3]=-65
c[1][0]=50
c[1][1]=130
c[1][2]=28
c[1][3]=-130
***MatrixA***
2 3 4
4 6 8
***MatrixB***
1 5 2 8
5 9 10 -3
2 7 -5 -18
***MatrixC***
25 65 14 -65
50 130 28 -130
返回 上一页 下一页
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 德意壁挂炉补水多了水压过高怎么办 新空调的散热片铜管漏了怎么办 猪舍被别人推掉漏电电到人怎么办? 网上买的燃气灶连接用软管怎么办 哈弗h3后减振器上支架坏了怎么办 汽车用收录机电机皮带断了怎么办 大便太粗把马桶堵了怎么办 大便过粗把马桶堵了怎么办 大便硬的像石头拉不出来怎么办 家里埋在地下的水管漏水怎么办 埋在墙里的水管漏水怎么办 开发商暗埋水管热熔接头漏水怎么办 钻墙把水管钻破了怎么办 钻墙时不小心把水管钻破了怎么办 孩子把同桌的铅笔盒弄坏了怎么办 水管伐坏了物业不给修怎么办 卫生间埋在地下的水管漏水怎么办 埋在地下的水管冻住了怎么办 洗脸盆下水管有眉笔掉堵了怎么办 楼上打空调眼导致墙面潮湿怎么办 阳台做防水了又贴砖还漏水怎么办 洗菜盆里的盖子吸住拔不起来怎么办 掉小区阴井盖里物业不管怎么办 卫生间下水道被头发堵了怎么办妙招 久量时尚夜光台灯不亮了怎么办 我想做水电暖工程没有资质怎么办 修手机被弄丢了没有开维修单怎么办 手机去维修被老板弄丢了怎么办 5年保修期过后房子楼顶漏水怎么办 墙内水管漏水怎么办3步骤巧维修 下面有地暖下面水管漏水怎么办 热水器接的塑料水管子漏水怎么办 电热水器烧热水时热水管漏水怎么办 户户通位置锁定模块异常1怎么办 户户通位置锁定模块异常3怎么办 逆战安全系统检测客户端异常怎么办 电视户户通位置信息模块异常怎么办 苹果手机wi-fi模块坏了怎么办 xp本地连接受限制或无连接怎么办 公司没帮二级建造师延续注册怎么办 考造价师考过了年限不够怎么办?