目录

  1. 参考链接
  2. 数组的声明与创建
  3. foreach循环
  4. 函数中使用数组

    1. 数组作为函数参数
    2. 数组作为函数返回值
  5. 多维数组
  6. Arrays类

参考链接

数组的声明与创建

Java 数组中的元素数据类型都是统一的,这和 JavaScript 等语言不通,声明一个数组变量的语法有两种:

  1. dataType[] ary;
  2. dataType ary[]

比较推荐使用第一种方式,可能更为直观一些吧。

创建一个数组有两种方式:

  1. dataType[] ary = new dataType[size];
  2. dataType[] ary = { val1, val2, val3, ... }

示例代码:

  1. public class AryClass {
  2. public static void main(String[] args) {
  3. char[] charAry = new char[2];
  4. int[] numAry = { 1, 2, 3 };
  5. charAry[0] = 'A';
  6. charAry[1] = 'B';
  7. // 输出: 'A' 'B'
  8. for (int i = 0; i < charAry.length; i++) {
  9. char charVal = charAry[i];
  10. System.out.println(charVal);
  11. }
  12. // 输出: 1 2 3
  13. for (int j = 0; j < numAry.length; j++) {
  14. int numVal = numAry[j];
  15. System.out.println(numVal);
  16. }
  17. }
  18. }

foreach循环

上一段实例代码用 for 循环遍历了整个数组,这种方法需要根据下标来获取数组元素,稍微有些麻烦,遍历一个数组,更常用的是使用 foreach 循环,示例代码如下:

  1. public class AryClass {
  2. public static void main(String[] args) {
  3. int[] numAry = { 1, 2, 3 };
  4. // 输出: 1 2 3
  5. for (int numVal: numAry) {
  6. System.out.println(numVal);
  7. }
  8. }
  9. }

函数中使用数组

数组作为函数参数

  1. public class AryClass {
  2. // 接收一个数组参数,遍历整个数组输出
  3. public static void output(int[] ary) {
  4. for (int numVal: ary) {
  5. System.out.println(numVal);
  6. }
  7. }
  8. public static void main(String[] args) {
  9. output(new int[]{ 1, 2, 3 });
  10. }
  11. }

数组作为函数返回值

  1. public class AryClass {
  2. // 传入多个参数,包装成数组返回
  3. public static int[] getAry(int num1, int num2) {
  4. int[] numAry = new int[2];
  5. numAry[0] = num1;
  6. numAry[1] = num2;
  7. return numAry;
  8. }
  9. public static void main(String[] args) {
  10. int[] data = getAry(1, 2);
  11. for (int num: data) {
  12. System.out.println(num);
  13. }
  14. }
  15. }

多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。创建一个多维数组的语法为(以二维数组为例): dataType ary[][] = new dataType[array1Length][array2Length]

示例代码如下(以二维数组为例):

  1. public class AryClass {
  2. // 初始化二维数组
  3. private static int ary[][] = new int[2][2];
  4. public static void main(String[] args) {
  5. AryClass aryClass = new AryClass();
  6. // 赋值
  7. aryClass.ary[0][0] = 0;
  8. aryClass.ary[0][1] = 1;
  9. aryClass.ary[1][0] = 10;
  10. aryClass.ary[1][1] = 11;
  11. // 遍历第一层数组
  12. for (int i = 0; i < aryClass.ary.length; i++) {
  13. System.out.println("List " + (i + 1) + ": ");
  14. // 遍历第二层数组
  15. for (int item: aryClass.ary[i]) {
  16. System.out.println("Item: " + item);
  17. }
  18. }
  19. }
  20. }

Arrays类

java.util.Arrays 类封装有一些常用的方法和属性,主要有以下这些:

  1. Arrays.fill(dataType[] ary, dataType val): 用 val 的值填充 ary 数组;
  2. Arrays.sort(dataType[] ary): 对 ary 中的非数组元素按自然顺序排序;
  3. Arrays.equals(dataType1[] ary1, dataType2[] ary2): 判断作为参数的两个数组是否相等。

示例代码:

  1. import java.util.Arrays; // 需要引入包
  2. public class AryClass {
  3. public static void main(String[] args) {
  4. int[] ary1 = new int[3];
  5. int[] ary2 = { 0, 1, 2 };
  6. Arrays.fill(ary1, 1); // ary1变为[1, 1, 1]
  7. System.out.println(Arrays.equals(ary1, ary2)); // false
  8. // 执行后,ary1变为[2, 1, 0]
  9. for (int i = 0; i < ary1.length; i++) {
  10. ary1[i] = ary1.length - i - ary1[i];
  11. }
  12. Arrays.sort(ary1); // ary1变为[0, 1, 2]
  13. System.out.println(Arrays.equals(ary1, ary2)); // true
  14. }
  15. }

  1. ID : 79
  2. DATE : 2018/06/15
  3. AUTHER : WJT20
  4. TAG : Java