Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3964422
  • 博文数量: 366
  • 博客积分: 9916
  • 博客等级: 中将
  • 技术积分: 7195
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-29 23:27
个人简介

简单!

文章分类

全部博文(366)

文章存档

2013年(51)

2012年(269)

2011年(46)

分类: Java

2012-09-26 17:10:40

Java中数组有以下几个特性:

1数组中的元素是同一类型。数组的长度在创建时确定,并且在创建后不变。例如,声明一个数组 int i[5]; 这就是int类型,名字叫i的数组,里面的数都必须是int类型,并且长度在创建时确定了是5

         2、在java语言中,数组就是一个对象,所以创建数组与创建对象一样也是new关键字来创建。例如,s = new char[20]; p = new Point[50];

         3数组在被创建后,其元素被系统自动初始化了。字符元素被初始化为‘\u0000,而对于对象数组都被初始化为null 如果不初始化的话,在内存是找不到它的位置的。

         4、数组中的第一元素记做第0个,i[0]是数组i 的第一个元素。


实例1:

  1. public class TestArrays {
  2.       public static void main(String[] args) {
  3.         // 第1,2步: 声明并初始化数组变量
  4.         int[] array1 = { 2, 3, 5, 7, 11, 13, 17, 19 };
  5.         int[] array2;

  6.         // 第3步: 显示数组初始化值
  7.         System.out.print("array1 is ");
  8.         printArray(array1);
  9.         System.out.println();

  10.         // 第4步: array2引用array1
  11.         array2 = array1;

  12.         // 更改array2
  13.         array2[0] = 0;
  14.         array2[2] = 2;
  15.         array2[4] = 4;
  16.         array2[6] = 6;

  17.         // 打印array1
  18.         System.out.print("array1 is ");
  19.         printArray(array1);
  20.         System.out.println();

  21.         // 第5步: 声明一个整数类型的二维数组
  22.         int[][] matrix = new int[5][];

  23.         // 第6步: 将这个矩阵构成三角形
  24.         for ( int i = 0; i < matrix.length; i++ ) {
  25.             matrix[i] = new int[i];
  26.              for ( int j = 0; j < i; j++ ) {
  27.                  matrix[i][j] = i * j;
  28.              }
  29.         }

  30.         // 第7步打印矩阵
  31.         for ( int i = 0; i < matrix.length; i++ ) {
  32.              System.out.print("matrix[" + i + "] is ");
  33.              printArray(matrix[i]);
  34.              System.out.println();
  35.         }
  36.       }

  37.       public static void printArray(int[] array) {
  38.         System.out.print('<');

  39.         for ( int i = 0; i < array.length; i++ ) {
  40.              // 打印一个元素
  41.              System.out.print(array[i]);
  42.              // 输出最后一个元素的时候不输出逗号
  43.              if ( (i + 1) < array.length ) {
  44.                  System.out.print(", ");
  45.              }
  46.         }
  47.         System.out.print('>');
  48.     }
  49. }
       jdk5.0中,有一些更简单的方法:打印一维数组时用toString(array)方法;打印二维数组时用deepToString(array)方法。
实例2:


  1. import java.util.Arrays;

  2. public class ArraysTester {
  3.     private int[] ar;

  4.       public ArraysTester(int numValues) {
  5.         ar = new int[numValues];

  6.         for (int i=0; i < ar.length; i++) {
  7.              ar[i] = (1000 - (300 + i));
  8.     }
  9.   }

  10.   public int[] get() {
  11.     return ar;
  12.   }

  13.   public static void main(String[] args) {
  14.         ArraysTester tester = new ArraysTester(50);
  15.         int[] myArray = tester.get();

  16.         // 比较两个数组
  17.         int[] myOtherArray = tester.get().clone();

  18.         if (Arrays.equals(myArray, myOtherArray)) {
  19.              System.out.println("这两个数组是相等的!");
  20.         } else {
  21.              System.out.println("这两个数组是不相等的!");
  22.         }

  23.         // 填上一些值
  24.         Arrays.fill(myOtherArray, 2, 10, new Double(Math.PI).intValue());
  25.         myArray[30] = 98;

  26.         // 打印数组
  27.         System.out.println("这是一个未排序的数组...");
  28.         System.out.println(Arrays.toString(myArray));
  29.         System.out.println();

  30.         // 数组排序
  31.         Arrays.sort(myArray);

  32.         // 打印被排序的数组 用toString()
  33.         System.out.println("这是一个被排序的数组...");
  34.         System.out.println(Arrays.toString(myArray));
  35.         System.out.println();

  36.         // 得到特殊值的索引
  37.         int index = Arrays.binarySearch(myArray, 98);
  38.         System.out.println("98 被定位在第 " + index + "个位置上");

  39.         String[][] ticTacToe = { {"X", "O", "O"},
  40.          {"O", "X", "X"},
  41.          {"X", "O", "X"}};

  42.         //打印二维数组用deepToString()
  43.         System.out.println(Arrays.deepToString(ticTacToe));

  44.         String[][] ticTacToe2 = { {"O", "O", "X"},
  45.          {"O", "X", "X"},
  46.          {"X", "O", "X"}};

  47.         String[][] ticTacToe3 = { {"X", "O", "O"},
  48.          {"O", "X", "X"},
  49.          {"X", "O", "X"}};

  50.         if (Arrays.deepEquals(ticTacToe, ticTacToe2)) {
  51.              System.out.println("Boards 1 和 2 相等.");
  52.         } else {
  53.              System.out.println("Boards 1 和 2 不相等.");
  54.         }

  55.         if (Arrays.deepEquals(ticTacToe, ticTacToe3)) {
  56.              System.out.println("Boards 1 和 3 相等.");
  57.         } else {
  58.              System.out.println("Boards 1 和 3 不相等.");
  59.         }
  60.       }
  61. }
阅读(831) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~