如何创建对象列表

时间:2014-06-02 11:11:42

标签: java android list collections arraylist

您好我想知道如何创建对象列表。基本上我正在做的是:

ArrayList<Object> FilledTransportList = new ArrayList<Object>();    

我想用这种方法填充列表中的对象:

public boolean checkFields()
{
    for (Map.Entry<String, EditText> entry : checkMap.entrySet()) 
    {
        String checkData = entry.getKey();
        String text = entry.getValue().getText().toString();

        if(text.length()>0)
        {
           FilledTransportList.add(checkData + " - " + text +" - " + "min");      
        }

    }

    return true;
}

但是,我得到的是一个字符串列表。

[something, something, something...etc]

我希望它是这样的:

[something],[something],[something],[something]...etc

我做错了什么?

3 个答案:

答案 0 :(得分:0)

很难理解你的意思,但我知道为什么你会得到一个字符串列表。您正在使用以下行将字符串添加到列表中:

FilledTransportList.add(checkData + " - " + text +" - " + "min"); 

如果您要创建用户定义对象的列表,那么在创建ArrayList时,您应该在&#39;&lt;&gt;&#39;之间具有用户定义对象的名称。而不是&#34;对象&#34;。通过使用超类Object,您可以在列表中放置任何类型的对象,这就是您能够向列表中添加字符串的原因。 String是Object的子类。

答案 1 :(得分:0)

我认为你有这样的陈述:

System.out.println (FilledTransportList)

执行此操作时,将调用toString() - ArrayList中的Method。 toString() - Method实现类似这样的Default-Behavior:

[obj1.toString(),obj2.toString(),objN.toString()]

如果您想要另一个列表表示,则必须为此实现自己的方法。

public static String getRepresentation (ArrayList<String> list);

并将其称为:

System.out.println (getRepresentation (FilledTransportList));

另一种可能性是编写一个封装列表的类并覆盖toString() - Method。

答案 2 :(得分:0)

对于任何已知的数据类型,它都不会那样工作。它不仅与String有关,而且与Integer,BigDecimal等相同。

现在,如果你正在寻找数据抽象,最好有一个带有String及其getter和setter的临时对象。

public class TestObject {
   private String abc;
}

现在添加到列表中:

TestObject obj = new TestObject(); 
obj.setAbc(checkData + " - " + text +" - " + "min");
FilledTransportList.add(obj);