首页 | 手机版 | 三国演义 | 三国志 | 史将 | 背景 | 藏书阁
首页 -> 精彩文章 -> 国培JAVA编程笔记第六章1

国培JAVA编程笔记第六章1

作者wangger 标签java 阅读次数:0

一、数组
    数组是用来存储一组相同类型数据的结构。数组元素在内存中是连续存放的,数组名代表的是这个数组的首地址。
二、数组的声明
    语法:
 类型 数组名[];
 或者: 类型[] 数组名;
 比如:String[] args或者String args[]
 int[] a;
    数组声明后,并不能直接使用。因为此时还没有分配内存空间。
三、数组的创建
    语法:
 数组名 = new 类型[整型表达式];
    表示分配了空间,分配了整型表达式中值的大小的空间。
 a = new int[5];
    表示为数组分配了5个整型的内存空间,即这个数组包含5个整型数组元素。相当于5个整型的变量。同时会为每个数组元素赋默认值。

public class Test {
 public static void main(String[] args) {
  int[] a;//声明数组
  a = new int[5];//创建数组
 }
}
 声明数组和创建数组可以一步完成。语法:
 类型[] 数组名 = new 类型[整型表达式];
上例可以改为:
public class Test {
 public static void main(String[] args) {
  int[] a = new int[5];//一步完成声明和创建数组
 }
}
四、数组元素的引用
    语法:
 数组名[索引]
    索引必须是整型数值或整型表达式,索引的值从0开始,最大值为创建时的“整型表达式”的值-1;
    上例中的数组a有5个元素,分别为a[0]、a[1]、a[2]、a[3]、a[4]。每个数组元素都可独立进行操作,也可以统一进行操作。

public class Test {
 public static void main(String[] args) {
  int[] a;
  a = new int[5];
  a[1] = 3;
  for(int n = 0; n < 5; n++){
   System.out.println("a[" + n + "]= " + a[n]);
  }
  System.out.println("a[5]= " + a[5]);
 }
}
    数组元素的个数不能超过创建时定义的个数,超过就会报异常: ArrayIndexOutOfBoundsException。

public class Test {
 public static void main(String[] args) {
  int[] a;
  a = new int[5];
  a[1] = 3;
  for(int n = 0; n < 5; n++){
   System.out.println("a[" + n + "]= " + a[n]);
  }
  System.out.println("a[5]= " + a[5]);//异常,因为数组已经越界。
 }
}
五、length属性
    数组提供了一个属性length,这个属性代表的是数组元素的个数。
    语法:
 数组名.length

public class Test {
 public static void main(String[] args) {
  int[] a;
  a = new int[16];
  a[1] = 3;
  for(int n = 0; n < a.length; n++){//length会自动计算数组的长度
   System.out.println("a[" + n + "]= " + a[n]);
  }
 }
}
六、main方法中参数的作用
    main方法中的参数是用来在运行时接收数据的。  
public class Test {
 public static void main(String[] args) {
  double r;
  r = Double.parseDouble(args[0]);//将字符串转到double类型。
  System.out.println("圆的面积为: " + 3.14 * r * r);
  
 }
}
    如用命令提示符运行,运行命令改为:
 java 类名 数值
    如使用eclipse运行,在空白处右击,弹出菜单,选择“run as"->"open run dialog...",会弹出“run”对话框,选择“argument”标签,在“program arguments”中输入数值。
例:1,1,2,3,5,8,13....,计算数列中第20个数的值。
public class Test {
 public static void main(String[] args) {
  int[] a = new int[20];
  a[0] = 1;
  a[1] = 1;
  for(int n = 2; n < 20; n++){
   a[n] = a[n - 2] + a[n - 1];
  }
  System.out.println("a[19] = " + a[19]);
 }
}
七、数组的复制
    数组复制不能通过数组名之间进行复制完成。数组名之间的赋值,实质上是地址的传递。最后结果是两个数组共享同一个内存空间。

public class Test {
 public static void main(String[] args) {
  int[] a = new int[3];
  int[] b = new int[3];
  a[0] = 1;
  a[1] = 2;
  a[2] = 3;
  b = a;//指向同一个内存空间
  for(int n = 0; n < a.length; n++){
   a[n]++;
  }
  for(int n = 0; n < b.length; n++){
   System.out.println("b[" + n + "] = " + b[n]);
  }  
 }
}

    数组复制最简单的方法就是循环复制。  
public class Test {
 public static void main(String[] args) {
  int[] a = new int[3];
  int[] b = new int[3];
  a[0] = 1;
  a[1] = 2;
  a[2] = 3;
  for(int n = 0; n < a.length; n++){
   b[n] = a[n];
  }
  for(int n = 0; n < a.length; n++){
   a[n]++;
  }
  for(int n = 0; n < b.length; n++){
   System.out.println("b[" + n + "] = " + b[n]);
  }  
 }
}
八、数组的初始化
    数组的初始化就是在创建数组的同时,对数组进行赋值。
    语法:
 类型[] 数组名 = {值列表};
 说明:值列表中各值之间使用逗号进行分隔。

public class Test {
 public static void main(String[] args) {
  int[] a = {1, 2 , 3};
  for(int n = 0; n < a.length; n++){
   System.out.println("a[" + n + "] = " + a[n]);
  }  
 }
}



浙ICP备06020153号-1