1. 程式人生 > >Java中Arrays.toString ()列印二維陣列及Array陣列的常用操作

Java中Arrays.toString ()列印二維陣列及Array陣列的常用操作

1.Java中Arrays.toString ()

已知列印一維陣列的API為System.out.println ( Arrays.toString ();,其引數為陣列名或陣列指標,其支援的資料型別有很多,如:int[]、char[]、byte[]等。

import java.util.Arrays;

public class ArrayPrint {
	
	public static void main(String[] args){
		
		//第一種方式:
	    int a[][]={{1,2,3},{4,5,6}};
	    System.out.println
("a:"+Arrays.toString(a)); int b[][]={{1,2,3},{4,5,6}}; System.out.println("b:"+Arrays.deepToString(b)); //第二種方式; //int[][] ints = new int[4][2]; //ints[i][j] =__; //分別賦值 //第三種方式:第二維的長度可以動態申請 int[][] arr3 = new int[5][]; //五行的長度 for(int i=0;
i<arr3.length; ++i){ arr3[i]=new int[i+1]; //列的長度每次都變化。每次都要重新申請空間(長度) for(int j=0; j<arr3[i].length; ++j){ arr3[i][j]= i+j; System.out.println( "arr3[i][j]:"+ arr3[i][j]); } System.out.println( "arr3[i][j]:"
+ Arrays.toString(arr3[i]) ); } } }

列印結果:

a:[[I@7852e922, [I@4e25154f]
b:[[1, 2, 3], [4, 5, 6]]
arr3[i][j]:0
arr3[i][j]:[0]
arr3[i][j]:1
arr3[i][j]:2
arr3[i][j]:[1, 2]
arr3[i][j]:2
arr3[i][j]:3
arr3[i][j]:4
arr3[i][j]:[2, 3, 4]
arr3[i][j]:3
arr3[i][j]:4
arr3[i][j]:5
arr3[i][j]:6
arr3[i][j]:[3, 4, 5, 6]
arr3[i][j]:4
arr3[i][j]:5
arr3[i][j]:6
arr3[i][j]:7
arr3[i][j]:8
arr3[i][j]:[4, 5, 6, 7, 8]

a:[[[email protected], [[email protected]]這種輸出結果是因為:
因為c是一個二維陣列。相當於一個長度為2的陣列,但是這個陣列的元素是陣列。

當執行Arrays.toString的時候相當於遍歷陣列,並且輸出陣列的元素,但是這個陣列的元素是陣列,所以這裡輸出的是陣列元素的地址。

2. Java中對Array陣列的常用操作

import java.util.*;
public class ArrayPrint {
	
	public static void main(String[] args){
    //宣告陣列
    String [] arr;
    int arr1[];
      
    //初始化陣列
    int arr2[]=new int[]{1,2,3,4,5};
    String[] array1={"馬超","馬雲","關羽","劉備","張飛"};
    String[] array2=new String[]{"黃渤","張藝興","孫紅雷","小豬","牙哥","黃磊"};      
    String[] array=new String[5];
       
    //檢視陣列的長度
    int length=array1.length;
    System.out.println("length:  "+array1.length);
      
    //輸出陣列
    System.out.println(array1);     //結果:[Ljava.lang.String;@32f22097
    System.out.println("arr2:  "+Arrays.toString(arr2));
      
    //遍歷陣列
    for (int i = 0; i < array1.length; i++) {
    	     System.out.println(array1[i]);
    }
    
    //int陣列轉成string陣列
    int[]  array3={1,2,3,4,5,6,7,8,9,0};
    String arrStrings=Arrays.toString(array3);
    System.out.println("arrStrings:"+arrStrings);
      
    //從array中建立arraylist
    ArrayList <String> arrayList=new ArrayList<String>(Arrays.asList(array1));
    System.out.println("arrayList:"+arrayList);
      
    //陣列中是否包含某一個值
    String a="馬超";
    if (Arrays.asList(array1).contains(a)) {
        System.out.println("馬超在這裡");
    }
      
    //將陣列轉成set集合
    Set<String> set=new HashSet<String>(Arrays.asList(array2));
    System.out.println("set:"+set);
      
    //將陣列轉成list集合
    List<String> list_1=new ArrayList<String>();
    for (int i = 0; i < array2.length; i++) {
        list_1.add(array2[i]);
    }
    System.out.println("list_1:"+list_1);
    
    String[] arrStrings2={"1","2","3"};
    List<String > list2=Arrays.asList(arrStrings2);
    System.out.println("list2:"+list2);
      
      
    //Arrays.fill()填充陣列
    int[] arr3=new int[5];
    Arrays.fill(arr3, 10);  //將陣列全部填充10
    System.out.println("arr3:"+arr3);
    for (int i = 0; i < arr3.length; i++) {
        System.out.println("arr3[i]:"+arr3[i]);
    }
      
    //陣列排序
    int[] arr4 = {3, 7, 2, 1, 9};
    Arrays.sort(arr4);
    System.out.println("arr4:"+arr4);
    for (int i = 0; i < arr4.length; i++) {
        System.out.println("arr4[i]:"+arr4[i]);
    }
      
    int[] arr5 = {3, 7, 2, 1, 9,3,45,7,8,8,3,2,65,34,5};
    Arrays.sort(arr5, 1, 4);  //從第幾個到第幾個之間的進行排序
    for (int i = 0; i < arr5.length; i++) {
        System.out.println("arr5[i]:"+arr5[i]);
    }
      
      
    //複製陣列
    int[] arr6 = {3, 7, 2, 1};
    int[] arr7=Arrays.copyOf(arr6, 10);  //指定新陣列的長度
      
    int[] arr8=Arrays.copyOfRange(arr6, 1, 3); //只複製從索引[1]到索引[3]之間的元素(不包括索引[3]的元素)
    for (int i = 0; i < arr8.length; i++) {
        System.out.println(arr8[i]);
    }
      
    //比較兩個陣列
    int[] arr9 = {1, 2, 3, 4,5,6,7,8,9,0};
    boolean arr10=Arrays.equals(arr6, arr9);
    System.out.println(arr10);
  
    //去重複
    //利用set的特性
    int[] arr11 = {1, 2, 3, 4,5,6,7,8,9,0,3,2,4,5,6,7,4,32,2,1,1,4,6,3};
    Set<Integer> set2=new HashSet<Integer>();
    for (int i = 0; i < arr11.length; i++) {
        set2.add(arr11[i]);
    }
        System.out.println(set2);
    int[] arr12 = new int[set2.size()];
    int j=0;
    for (Integer i:set2) {
        arr12[j++]=i;
    }
    System.out.println(Arrays.toString(arr12));
}
}

執行:

length:  5
[Ljava.lang.String;@7852e922
arr2:  [1, 2, 3, 4, 5]
馬超
馬雲
關羽
劉備
張飛
arrStrings:[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
arrayList:[馬超, 馬雲, 關羽, 劉備, 張飛]
馬超在這裡
set:[小豬, 牙哥, 黃渤, 黃磊, 孫紅雷, 張藝興]
list_1:[黃渤, 張藝興, 孫紅雷, 小豬, 牙哥, 黃磊]
list2:[1, 2, 3]
arr3:[I@4e25154f
arr3[i]:10
arr3[i]:10
arr3[i]:10
arr3[i]:10
arr3[i]:10
arr4:[I@70dea4e
arr4[i]:1
arr4[i]:2
arr4[i]:3
arr4[i]:7
arr4[i]:9
arr5[i]:3
arr5[i]:1
arr5[i]:2
arr5[i]:7
arr5[i]:9
arr5[i]:3
arr5[i]:45
arr5[i]:7
arr5[i]:8
arr5[i]:8
arr5[i]:3
arr5[i]:2
arr5[i]:65
arr5[i]:34
arr5[i]:5
7
2
false
[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]

參考:
https://www.cnblogs.com/epeter/p/5664926.html