繁体   English   中英

如何从ArrayList获取值<String[]>

[英]How to get values from ArrayList<String[]>

如何从ArrayList<String[]>获取或打印String?

ArrayList<String[]> arrayList = new ArrayList<>();
arrayList.add(new String[]{"A1","A1","A3"});
arrayList.add(new String[]{"B1","B1","B3"});
arrayList.add(new String[]{"C1","C1","C3"});

System.out.println("*** 1 ***");
System.out.println(arrayList);

System.out.println("*** 2 ***");
for (int i = 0; i < arrayList.size(); i++) {
    System.out.println((String[])arrayList.get(i));
}

System.out.println("*** 3 ***");
for (int i = 0; i < arrayList.size(); i++) {
    System.out.println(arrayList.get(i).toString());
}

System.out.println("*** 4 ***");
for (int i = 0; i < arrayList.size(); i++) {
    String[] strings = arrayList.get(i);
    System.out.println(strings);
}

输出:

*** 1 ***
[[Ljava.lang.String;@2a85f3d6, [Ljava.lang.String;@404b7c69, [Ljava.lang.String;@1bd4f279]

*** 2 ***
[Ljava.lang.String;@2a85f3d6
[Ljava.lang.String;@404b7c69
[Ljava.lang.String;@1bd4f279
*** 3 ***
[Ljava.lang.String;@2a85f3d6
[Ljava.lang.String;@404b7c69
[Ljava.lang.String;@1bd4f279
*** 4 ***
[Ljava.lang.String;@2a85f3d6
[Ljava.lang.String;@404b7c69
[Ljava.lang.String;@1bd4f279

可悲的是,Java的默认数组toString()毫无用处。 您必须使用实用程序方法Arrays.toString() 这将起作用:

for (String[] strings : arrayList)
    System.out.println(Arrays.toString(strings));

在Java中,每个对象都有toString()方法,默​​认是显示类名称表示形式,然后添加@ ,然后添加哈希码。

stringsString数组 您应该使用Arrays#toString() ,它是通过以下方式实现的(我建议您仔细阅读以更好地了解发生了什么事情):

3860     public static String toString(int[] a) { {
3861        if (a == null)
3862            return "null";
3863        int iMax = a.length - 1;
3864        if (iMax == -1)
3865            return "[]";
3866
3867        StringBuilder b = new StringBuilder();
3868        b.append('[');
3869        for (int i = 0; ; i++) {
3870            b.append(a[i]);
3871            if (i == iMax)
3872                return b.append(']').toString();
3873            b.append(", ");
3874        }
3875    }

或者,您可以在其上循环并手动打印项目:

for(String str: strings) {
    System.out.println(str + " ");
}

尝试修改此:

**@Override
public String toString() {
    return "abc [name=" + name + ", stage=" + stage
            + ", messageCode=" + messageCode + ", title=" + title
            + ", description=" + description + ", expiryTimeLeft="
            + expiryTimeLeft + ", holdLimit=" + holdLimit + ", points="
            + points];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM