[英]generic method to print all elements in an array
我想要一個循環任何類型數組並打印它們的方法,我寫了以下內容:
public static <T> void printArray(T[] arr){
for(T t: arr){
System.out.print(t+" ");
}
System.out.println("");
}
但是這個只適用於類數組,如果我有一個char[]
而不是一個Character[]
,或者一個int[]
而不是一個Integer[]
,或者有沒有辦法在它們之前投射它們? 謝謝
java.util.Arrays.toString(array)
應該這樣做。
ArrayUtils.toString(array)
(但更喜歡JDK) StringUtils.join(array, ',')
Joiner.on(',').skipNulls().join(array)
所有這些都返回一個String
,然后可以使用System.out.println(..)
或logger.debug(..)
。 請注意,如果數組的元素以有意義的方式實現了toString()
,這些將為您提供有意義的輸入。
最后兩個選項,唉,不支持原始數組,但是很好的選擇要知道。
你不能為原始數組寫一個通用的定義。 相反,您可以使用方法重載並為每個基本數組類型編寫一個方法,如下所示,
public static void printArray(int[] arr)
public static void printArray(short[] arr)
public static void printArray(long[] arr)
public static void printArray(double[] arr)
public static void printArray(float[] arr)
public static void printArray(char[] arr)
public static void printArray(byte[] arr)
public static void printArray(boolean[] arr)
private static void printArray(Object arr) {
// TODO Auto-generated method stub
String arrayClassName=arr.getClass().getSimpleName();
if (arrayClassName.equals("int[]"))
System.out.println(java.util.Arrays.toString((int[]) arr));
if (arrayClassName.equals("char[]"))
System.out.println(java.util.Arrays.toString((char[]) arr));
}
您不能將原始數組傳遞給printArray()方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.