在Java中将ArrayList转换为数组

78

我有一个包含类似"abcd#xyz"和"mnop#qrs"值的ArrayList。我想将其转换为数组,然后使用#作为分隔符进行拆分,并将abcd、mnop放入一个数组中,将xyz、qrs放入另一个数组中。我尝试了以下代码:

String dsf[] = new String[al.size()];              
for(int i =0;i<al.size();i++){
  dsf[i] = al.get(i);
}

但是它失败了,显示"Ljava.lang.String;@57ba57ba"


2
请发布您的ArrayList定义和完整的错误消息。 - Guillaume Polet
7
“it failed saying ...” 的意思是什么?这看起来像是打印 dsf.toString() 的结果… - Jon Skeet
你想要一个由字符串数组组成的数组,即二维数组吗? - Adam
12个回答

0
// A Java program to convert an ArrayList to arr[]
import java.io.*;
import java.util.List;
import java.util.ArrayList;

class Main {
     public static void main(String[] args)
    {
        List<Integer> al = new ArrayList<Integer>();
        al.add(10);
        al.add(20);
        al.add(30);
        al.add(40);

        Integer[] arr = new Integer[al.size()];
        arr = al.toArray(arr);

        for (Integer x : arr)
            System.out.print(x + " ");
     }
 }

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0

可以使用流来完成:

List<String> stringList = Arrays.asList("abc#bcd", "mno#pqr");
    List<String[]> objects = stringList.stream()
                                       .map(s -> s.split("#"))
                                       .collect(Collectors.toList());

返回值将是拆分字符串的数组。 这样可以避免将ArrayList转换为数组并执行操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接