打印数组中所有元素的通用方法
我想要一种可以循环任何类型数组并打印它们的方法,我编写了以下内容:
public static <T> void printArray(T[] arr){
for(T t: arr){
System.out.print(t+" ");
}
System.out.println("");
}
但这一个仅适用于类数组,如果我有一个 char[]
而不是 怎么办? Character[]
或 int[]
而不是 Integer[]
,或者有没有办法预先转换它们?谢谢
I wanna a method that would loop any type array and print them, I have written the following:
public static <T> void printArray(T[] arr){
for(T t: arr){
System.out.print(t+" ");
}
System.out.println("");
}
but this one only works for class arrays, what if I have a char[]
instead of a Character[]
, or a int[]
instead of an Integer[]
, or is there a way to cast them before hand? Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
java.util.Arrays.toString(array)
应该可以。ArrayUtils.toString(array)
(但是更喜欢 JDK 之一)StringUtils.join(array, ',')
Joiner.on(',').skipNulls().join(array)
所有这些都返回一个
String
,然后您可以System.out.println(..)
或logger.debug(..)
。请注意,如果数组的元素以有意义的方式实现了 toString(),那么这些将为您提供有意义的输入。遗憾的是,最后两个选项不支持原始数组,但这是值得了解的好选项。
java.util.Arrays.toString(array)
should do.ArrayUtils.toString(array)
(but prefer the JDK one)StringUtils.join(array, ',')
Joiner.on(',').skipNulls().join(array)
All of these return a
String
, which you can thenSystem.out.println(..)
orlogger.debug(..)
. Note that these will give you meaningful input if the elements of the array have implementedtoString()
in a meaningful way.The last two options, alas, don't have support for primitive arrays, but are nice options to know.
您无法为原始数组编写通用定义。相反,您可以使用方法重载并为每个基本数组类型编写一个方法,如下所示,
You cant write a generic definition for primitive arrays. Instead, you can use method overloading and write a method for each primitive array type like this,
您无法将原始数组传递给 printArray() 方法
You can't pass primitive arrays to the printArray() method