日期:2014-05-20  浏览次数:20757 次

关于asList,求大侠看看
int[] a1 = new int[]{1,2,3};
String[] str2 = new String[]{"a","b","c"};
 System.out.println(Arrays.asList(a1));
  System.out.println(Arrays.asList(str2));
   


为什么会打印出如下结果呢?
[[I@64dc420b]
[a, b, c]


------解决方案--------------------
Integer[] a2 = new Integer[]{1,2,3};
System.out.println(Arrays.asList(a2));

这样既可

Integer才是一个类,int不是
------解决方案--------------------
Arrays是一个工具类,可以用来搜索,判断两个数组关系,排序,复制等很多功能。会输出这个结果,你主要要看一个类的toString()方法是怎么实现的。其实你自己也可以实现。
下边是Arrays的一个实现:
Java code

    public static String toString(long[] a) {
        if (a == null)
            return "null";
    int iMax = a.length - 1;
    if (iMax == -1)
            return "[]";

        StringBuilder b = new StringBuilder();
        b.append('[');
        for (int i = 0; ; i++) {
            b.append(a[i]);
        if (i == iMax)
        return b.append(']').toString();
            b.append(", ");
        }
    }