Java打印數組的三種方法整理

在Java開發中有時候需要打印數組信息,下面是整理歸納的幾種打印數組方法:(如下)

①、使用 for 循環打印

最簡單的方法,逐個遍歷打印

註:如果是多維數組的話,使用多層 for 循環嵌套就可以打印瞭。

一維數組:

public static void main(String[] args) {
    int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
    // 普通for循環打印
    System.out.println("普通for循環打印:");
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + "、");
    }
    System.out.println(); // 換行
    // 增強for循環打印
    System.out.println("增強for循環打印:");
    for (int num : arr) {
        System.out.print(num + "、");
    }
}

二維數組:

public static void main(String[] args) {
      int[][] arr = new int[][] {{1,2},{2,3},{3,4},{4,5},{5,6}};// 二維數組
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
               System.out.print(arr[i][j] + "、");
         }
     }
 }

②、使用 Arrays.toString() 或 Arrays.deepToString()

對於一維數組,可以使用Arrays.toString()方法,它支持將任意類型的數組轉換為字符串,代碼如下:

public static void main(String[] args) {
    int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
    //使用Array.toString()
    System.out.println(Arrays.toString(arr));
}

但對於多維數組,用 Arrays.toString() 就會出現和直接打印數組變量名時一樣的問題,打印出來的是地址值。這時候,就需要使用 Arrays.deepToString() 方法瞭,如下圖:

Java不會去使用多維數組,最多用到二維,因為Java會用到面向對象

public static void main(String[] args) {
    int[][] arr = new int[][] {{1,2},{2,3},{3,4},{4,5},{5,6}};// 二維數組
    //使用Arrays.deepToString()
    System.out.println(Arrays.deepToString(arr));
}

一維數組用 Arrays.toString() 方法,多維數組用 Arrays.deepToString() 方法

③、使用 Arrays.asList()

該方法是將數組轉化為list

以下幾點需要註意:

(1)該方法不適用於基本數據類型

(byte,short,int,long,float,double,boolean),但可以用基本數據類型的封裝類。比如int的封裝類Integer.(Object 數組也是有效)

(2)該方法將數組與列表鏈接起來,當更新其中之一時,另一個自動更新

(3)不支持add和remove方法

    public static void main(String[] args) {
        int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.asList(arr));
        //打印結果:[[I@140e19d]
    }
    public static void main(String[] args) {
        Integer[] arr = new Integer[]{0,1,2,3,4,5,6,7,8,9};
        System.out.println(Arrays.asList(arr));
        //打印結果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    }

補充:java byte數組打印

十六位數組打印輸出

簡單的方式

Byte[] bs = {0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F};
System.out.println(Arrays.toString(bs));

// 打印輸出結果
[15, 31, 47, 63, 79, 95, 111]

更加通用一點的方式

byte[] bs = hexStringToByteArray("e04fd020ea3a6910a2d808002b30309d");
System.out.println(Arrays.toString(bs));

/**
 * 將String轉換為byte[]
 * @param s String
 * @return byte[]
 */
public static byte[] hexStringToByteArray(String s) {
	int len = s.length();
	byte[] data = new byte[len / 2];
	for (int i = 0; i < len; i += 2) {
	data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
	}
	return data;
}

// 打印輸出結果
[-32, 79, -48, 32, -22, 58, 105, 16, -94, -40, 8, 0, 43, 48, 48, -99]

普通數組打印輸出

byte[] bs = "你好,這是一段字符串!".getBytes();
System.out.println(Arrays.toString(bs));

// 打印輸出結果
[-28, -67, -96, -27, -91, -67, -17, -68, -116, -24, -65, -103, -26, -104, -81, -28, -72, -128, -26, -82, -75, -27, -83, -105, -25, -84, -90, -28, -72, -78, -17, -68, -127]

總結

到此這篇關於Java打印數組的三種方法的文章就介紹到這瞭,更多相關Java打印數組內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: