【问题标题】:How to create a list of object如何创建对象列表
【发布时间】:2014-07-22 11:46:10
【问题描述】:

您好,我想知道如何创建对象列表。所以基本上我在做的是这样的:

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

我做错了什么?

【问题讨论】:

  • 你为什么不把它们拆分成那种格式呢?
  • 什么意思,能举个例子吗?
  • 字符串扩展对象。代码行为是预期的。你真正想要什么?
  • 你的 [something,something...] 是否意味着 [checkData + " - " + text +" - " + "min", checkData + " - " + text +" - " + "min ", checkData + " - " + text +" - " + "min"...]?
  • 是的,它确实意味着 checkData + " - " + text +" - " + "min"

标签: java android list collections arraylist


【解决方案1】:

它不适用于任何已知的数据类型。不仅是 String 的情况,Integer、BigDecimal 等也是如此。

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

public class TestObject {
   private String abc;
}

现在添加到列表中:

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

【讨论】:

    【解决方案2】:

    我认为你有这样的说法:

    System.out.println (FilledTransportList)
    

    执行此操作时,将调用 ArrayList 中的 toString() 方法。 toString() 方法实现了这样的默认行为:

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

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

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

    然后这样称呼它:

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

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

    【讨论】:

    • 等等我真的很困惑......我搞砸了我想创建一个对象列表。这意味着当我将鼠标悬停在“FilledTransportList”2 个对象数组列表上时,我想看看。一个包含“checkData”中的数据,2 个包含“文本”
    【解决方案3】:

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

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

    如果您尝试创建用户定义对象的列表,那么当您创建 ArrayList 时,您应该在“”而不是“对象”之间使用用户定义对象的名称。通过使用超类 Object,您可以将任何类型的对象放入列表中,这就是您能够将字符串添加到列表中的原因。 String 是 Object 的子类。

    【讨论】:

    • 嗯可能是我没有很清楚地解释我想要什么所以我会再试一次。我希望“FilledTransportList”中的每个新条目都是与其余条目分开的对象
    • @user3182266:它们是单独的对象,在这种情况下是字符串。
    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2021-10-01
    • 2016-03-07
    相关资源
    最近更新 更多