的ArrayList<T>
(仿制药可选<T>
)。如果有更多输入可用,则是一个动态增加更多内存的数组。将元素添加到此列表的分摊成本为O(1),但它提供了处理输入的便捷方法。
要回答你的问题,因为@Mureinik已经回答了你,然后可以使用ArrayList.toString()
到列表转换为文本表示。
要回答你的真正的问题,您可以执行以下操作:
public static<T> String toStringArrayNonNulls (T[] data) {
StringBuilder sb = new StringBuilder();
sb.append("[");
int n = data.length;
int i = 0;
for(; i < n; i++) {
if(data[i] != null) {
sb.append(data[i].toString());
break;
}
}
for(; i < n; i++) {
if(data[i] != null) {
sb.append(",");
sb.append(data[i].toString());
}
}
sb.append("]");
return sb.toString();
}
,并调用该方法你想要的任何类型的数组。
例子
String[] names = new String[] {"Alice",null,"Charly","David",null,null};
System.out.println(toStringArrayNonNulls(names));
Integer[] primes = new Integer[] {2,3,null,null,11};
System.out.println(toStringArrayNonNulls(primes));
Object[] namesAndPrimes = new Integer[] {"Alice",2,null,3,null,"Charly",null,11};
System.out.println(toStringArrayNonNulls(namesAndPrimes));
怎么样使用ArrayList的''? –
2014-10-03 13:43:35
使用列表而非数组。然后,如果你真的需要(但你不应该)将它转换回数组。你可以很容易地遍历列表,它有一个动态的长度。 – 2014-10-03 13:44:04