网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> Java编程 >> 文章正文
  全新java初学者实践教程9(java SE5.0版)----jdk5的数组            【字体:
全新java初学者实践教程9(java SE5.0版)----jdk5的数组
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-2    

     今天我们讲个不一样的概念――数组,数组也没什么不好理解的,就是一组数。
正在装载数据……
不过这组数有点特性。今天我们的任务就是,了解这个有特性的这组数。下面我们具体讲一下它有哪些特性:

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 的第一个元素。

     说了这么些,我们还是得练练啊

实践:

public class TestArrays {

  public static void main(String[] args) {

    // 12: 声明并初始化数组变量

    int[]  array1 = { 2, 3, 5, 7, 11, 13, 17, 19 };

    int[]  array2;

 

    // 3: 显示数组初始化值

    System.out.print("array1 is ");

    printArray(array1);

    System.out.println();

    // 4: array2引用array1

    array2 = array1;

    // 更改array2

    array2[0] = 0;

    array2[2] = 2;

    array2[4] = 4;

    array2[6] = 6;

    // 打印array1

    System.out.print("array1 is ");

    printArray(array1);

    System.out.println();

    // 5: 声明一个整数类型的二维数组

    int[][] matrix = new int[5][];

    // 6: 将这个矩阵构成三角形

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

      matrix[i] = new int[i];

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

       matrix[i][j] = i * j;

      }

    }

    // 7步打印矩阵

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

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

      printArray(matrix[i]);

      System.out.println();

    }

  }

  public static void printArray(int[] array) {

    System.out.print('<');

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

      // 打印一个元素

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

      // 输出最后一个元素的时候不输出逗号

      if ( (i + 1) < array.length ) {

       System.out.print(", ");

      }

    }

    System.out.print('>');

  }

}  此源码和其它例子打包下载

    jdk5.0中,我们发现了一些更简单的方法,打印一维数组时,用toString(array)方法,

打印二维数组时,用deepToString(array)方法。这样的话就剩了我们又是循环又是判断的。我们看个例子吧:实践:

import java.util.Arrays;

public class ArraysTester {

  private int[] ar;

 

  public ArraysTester(int numValues) {

    ar = new int[numValues];

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

      ar[i] = (1000 - (300 + i));

    }

  }

  public int[] get() {

    return ar;

  }

  public static void main(String[] args) {

    ArraysTester tester = new ArraysTester(50);

    int[] myArray = tester.get();

    // 比较两个数组

    int[] myOtherArray = tester.get().clone();

    if (Arrays.equals(myArray, myOtherArray)) {

      System.out.println("这两个数组是相等的!");

    } else {

      System.out.println("这两个数组是不相等的!");

    }

    // 填上一些值

    Arrays.fill(myOtherArray, 2, 10, new Double(Math.PI).intValue());

    myArray[30] = 98;

    // 打印数组

    System.out.println("这是一个未排序的数组...");

    System.out.println(Arrays.toString(myArray));

    System.out.println();

    // 数组排序

    Arrays.sort(myArray);   

    // 打印被排序的数组 toString()

    System.out.println("这是一个被排序的数组...");

    System.out.println(Arrays.toString(myArray));

    System.out.println();

 

    // 得到特殊值的索引

    int index = Arrays.binarySearch(myArray, 98);

    System.out.println("98 被定位在第 " + index + "个位置上");

 

    String[][] ticTacToe = { {"X", "O", "O"},

                             {"O", "X", "X"},

                             {"X", "O", "X"}};

    //打印二维数组用deepToString()

    System.out.println(Arrays.deepToString(ticTacToe));

    String[][] ticTacToe2 = { {"O", "O", "X"},

                              {"O", "X", "X"},

                              {"X", "O", "X"}};

    String[][] ticTacToe3 = { {"X", "O", "O"},

                              {"O", "X", "X"},

                              {"X", "O", "X"}};

    if (Arrays.deepEquals(ticTacToe, ticTacToe2)) {

      System.out.println("Boards 1 2 相等.");

    } else {

      System.out.println("Boards 1 2 不相等.");

    }

    if (Arrays.deepEquals(ticTacToe, ticTacToe3)) {

      System.out.println("Boards 1 3 are 相等.");

    } else {

      System.out.println("Boards 1 3 are 不相等.");

    }

  }

}此源码和其它例子打包下载

  原文地址 :http://www.100jq.com/show.aspx?id=13&cid=11


本文来源:http://blog.csdn.net/Persuse3/archive/2007/07/07/1682208.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     用java实现web服务器
     用java快速开发linux gu…
     正则表达式分解siemens交…
     [portal参考手册]目录
     jsp中调用oracle存储过程…
  • JSP中JavaBean的生命周期

  • Java Swing实现俄罗斯方块

  • 快速、简便使用AJAX技术的三…

  • java异常处理机制的深入理解

  • [转]Java堆和栈的区别 经典总…

  • 关于java Applet

  • java 设计工厂模式

  • Core Java 之旅

  • 专访Java之父:Java未来的发…

  • 开发手记---JAVA数据库连接池

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David