数组(一维数组、二维数组、与数组相关的函数)

1、一维数组

(1)定义一个数组:

创建一个长度为50的数组:

int[] arr=new int[50];

定义数组时给数组赋值:

int[] arr = {5,1,12,4,6,8,0,3};

要注意和C语言定义数组的方式区别:

int a[5] = {1, 2, 3, 4, 5};

(2)遍历一维数组:

public class ArrayDemo {
    public static void main(String[] args) {
    int[] arr = {5,1,12,4,6,8,0,3};
    System.out.println("arr的遍历");
    for(int i = 0 ; i < arr.length; i++){
        System.out.print(arr[i]);
        System.out.print("	");
    }
    }
}

2、二维数组

  (1)定义一个二维数组:

int[][] arr = new int[2][4];

int[][] arr = new int[5][];

int[][] arr = {{1,2,2},{3,4,5,6},{7,8,3,9}};

(2)二维数组的遍历:

public class Array{
    public static void main(String[] args){
        int[] arr0 = {5,1,12,4,6,8,0,3};
        int[][] arr = { {1,2,3},
                        {4,5},
                        {6,7,8,9},
                        {0} };
        System.out.println("*********二维数组**********");
        System.out.println("1、元素求值:");
        System.out.println(arr[2][1]);//问题: 打印7,是数组中的元素0
        System.out.println(arr[3][0]);//问题: 输出结果
        System.out.println();
        System.out.print("2、遍历数组:");
        System.out.println();
        for(int i = 0 ; i < arr.length ;i++){//外循环,遍历二维数组  
            for(int j = 0 ; j < arr[i].length; j++){//内循环,遍历每个一维数组 arr[0] arr[1] arr[i]
                     System.out.print("  "+arr[i][j]+",");
                    }
                    System.out.println();
    }
        System.out.println();
        System.out.println("3、arr的属性");
        System.out.println("arr的行数为:"+arr.length);
        System.out.println("arr第四行元素个数为:"+arr[3].length);
        }
}

 3、与数组相关的函数

(1)使用 System.arraycopy()函数拷贝数组

public class ArrayCopyDemo {
    public static void main(String[] args) {
        int Arr1[] = new int[] { 1, 2, 3, 4, 5 };
        int Arr2[] = new int[] { 9, 8, 7, 6, 5, 4, 3 };
        System.arraycopy(Arr1, 0, Arr2, 0, 3);//static类型方法,直接类名调用。
        // 复制源数组中从下标 0 开始的 3 个元素到目的数组,从下标 0 的位置开始存储。
        for (int i = 0; i < Arr1.length; i++)
            System.out.print(Arr1[i]);
        System.out.println();
        for (int j = 0; j < Arr2.length; j++)
            System.out.print(Arr2[j]);
        System.out.println();//复制的数组元素的个数一定不要超过目的数组的长度。
    }
}

将源数组指定个数的元素复制到目标数组,但是,目标数组的元素会被覆盖。

(2) Arrays.sort 来对数组排序

package SortDemo;

import java.util.*;

public class SortDemo {
public static void main(String[] args) {
int [] Arr = new int[] { 10, 21, 4, 9, 8, 3, 34, 99 };
Arrays.sort(Arr);
for (int i = 0; i < Arr.length; i++) {
System.out.print(Arr[i]);
System.out.print(" ");
}
}
 }

 (3)Arrays.equals(数组1,数组2):

static boolean equals(boolean[] a, boolean[] a2) 
如果两个指定的布尔数组彼此 相等 ,则返回
true
static boolean equals(byte[] a, byte[] a2)
如果两个指定的字节数组彼此 相等 ,则返回
true
static boolean equals(char[] a, char[] a2)
如果两个指定的字符数组彼此 相等 ,则返回
true
static boolean equals(double[] a, double[] a2)
如果两个指定的双精度数组彼此 相等 ,则返回
true
static boolean equals(float[] a, float[] a2)
如果两个指定的浮动数组彼此 相等 ,则返回
true
static boolean equals(int[] a, int[] a2)
如果两个指定的int数组彼此 相等 ,则返回
true
static boolean equals(long[] a, long[] a2)
如果两个指定的longs数组彼此 相等 ,则返回
true
static boolean equals(Object[] a, Object[] a2)
如果两个指定的对象数组彼此 相等 ,则返回
true
static boolean equals(short[] a, short[] a2)
如果两个指定的短裤阵列彼此 相等 ,则返回
true
static void fill(boolean[] a, boolean val)
将指定的布尔值分配给指定的布尔数组的每个元素。
import java.util.Arrays;

public class ArrayTest {
    public static void main(String[] args) {
        int [] Arr1 = new int[] { 10, 21, 4, 9, 8, 3, 34, 99 };
        int [] Arr2 = new int[] { 10, 21, 4, 9, 8, 3, 34, 99 };
        Boolean b= Arrays.equals(Arr1,Arr2);
        System.out.println(b);
    }
}

判断两个数组中的元素是否相等,相等则返回true,不相等则返回false。

原文地址:https://www.cnblogs.com/zhai1997/p/11260094.html