如何在java中用动态数据创建多个arraylist

时间:2014-02-11 04:03:36

标签: java android list arraylist

我是Java的新手。请不要把-ve投票。我只是想知道。  我有以下数据:

[john-london-4455-null,mark-newyork-null-null,abishek-null-2244-java developer...may be more]

可能更多来自网络的动态数据。

现在我想在这种情况下创建三个数组列表。它取决于从网络获取的数据。

修改

我的意图是,我想创建

array1= john, mark, abishek
array2= london, newyork,null
array3=4455,null,2244
array4=null,null, java developer
.
.
. 

可能更依赖于数据。

4 个答案:

答案 0 :(得分:1)

创建PersonInfo Bean类

class PersonInfo
{
    String name,loc,add;
    Data(String name,String loc,String add)
    {
        this.name=name;
        this.loc=loc;
        this.add=add;
    }
}

并创建ArrayList<PersonInfo>

List<PersonInfo> list = new ArrayList<PersonInfo>();
list.add(new PersonInfo("john", "london", "4455"));
list.add(new PersonInfo("abishek", "mumbai", "2244"));
list.add(new PersonInfo("mark", "newyork", "3366"));

答案 1 :(得分:1)

为什么不创建像

这样的Utility类
public class PersonInfo{

  String name;
  String loc;
  String add;
}

创建ArrayList<PersonInfo> 在这种情况下,您不必创建单独的ArrayList

答案 2 :(得分:1)

看起来你的数据是某种对象数组,文本用连字符分隔。您可以使用以下代码将其解析为列表:

String data = "[[john-london-4455-null],[mark-newyork-null-null],[abishek-null-2244-java developer]]";

//first, remove the first and last square brackets
data = data.substring(1, data.length()-1);
//now separate each object by splitting on the commas
String[] parts = data.split(",");

//create the array that will store all your array data
String[][] lists = new String[parts.length][];

//now create each list and store it in your array
for (int i = 0; i < parts.length; i++) {
    String str = parts[i].substring(1, parts[i].length()-1);
    lists[i] = str.split("-");
}

现在您可以使用列表对象了。这比使用List<String>更有效。

答案 3 :(得分:1)

以下是根据我对您的问题的理解编写的代码段。我试图将ArrayList数据拆分为数组。然后使用简单的for循环将拆分数据插入到相应的列表中。

  String[] listToArray;
        List<String> one  = new ArrayList<>();
        List<String> two  = new ArrayList<>();

        List<String> l = new ArrayList<>();
        l.add("1-name1-addr1");
        l.add("2-name2-addr2");

// l contains the data as you mentioned 

for (Iterator<String> iterator = l.iterator(); iterator.hasNext();) {
            String string = (String) iterator.next();


    listToArray = string.split("-");

            for(int i =0; i<listToArray.length; i+=3){
                one.add(listToArray[i]);
            }

            for(int i =1; i<listToArray.length; i+=3){
                two.add(listToArray[i]);
            }

        }

        System.out.println(one);
        System.out.println(two);
    }

如果您需要输出作为数组,只需在单个列表上调用toArray()方法。

PS:如果您可以选择豆类,那么事情会变得更加容易。