int n = 10; String[] strArray = new String[n]; List<String> list = Arrays.asList(strArray); Collections.fill(list, "Hello World"); System.out.println(list.toString());
学习了,不过看了下源码,最终还是没有逃脱循环: Arrays.fill(obj,str); 调用的是Arrays.fill(a, 0, a.length, val); 也就是调用:public static void fill(Object[] a, int fromIndex, int toIndex, Object val) { rangeCheck(a.length, fromIndex, toIndex); for (int i=fromIndex; i<toIndex; i++) a[i] = val; }不过还是学习了以前没有用过的方法。
然后Arrays.toString事实上是public static String toString(Object[] a) { if (a == null) return "null"; if (a.length == 0) return "[]";
StringBuilder buf = new StringBuilder();
for (int i = 0; i < a.length; i++) { if (i == 0) buf.append('['); else buf.append(", ");
int num=4;
Object[] obj=new Object[num];
Arrays.fill(obj,str);
String s=Arrays.toString(obj);
s=s.replaceAll("([\\[\\]]|[,][\\s])","\n");
System.out.println(s);
String[] strArray = new String[n];
List<String> list = Arrays.asList(strArray);
Collections.fill(list, "Hello World");
System.out.println(list.toString());
Arrays.fill(obj,str);
调用的是Arrays.fill(a, 0, a.length, val);
也就是调用:public static void fill(Object[] a, int fromIndex, int toIndex, Object val) {
rangeCheck(a.length, fromIndex, toIndex);
for (int i=fromIndex; i<toIndex; i++)
a[i] = val;
}不过还是学习了以前没有用过的方法。
if (a == null)
return "null";
if (a.length == 0)
return "[]";
StringBuilder buf = new StringBuilder();
for (int i = 0; i < a.length; i++) {
if (i == 0)
buf.append('[');
else
buf.append(", ");
buf.append(String.valueOf(a[i]));
}
buf.append("]");
return buf.toString();
}表面上没有循环,事实用了两次,不知道为什么会有这么怪异的问题,还不如直接在外面循环!呵呵