Java:如何在自定义ArrayList中添加字符串值

时间:2014-10-04 10:59:49

标签: java arraylist

我想知道如何在自定义ArrayList中添加字符串值。

我已尝试过以下代码,但它给了我错误

ArrayList<MyCustom> aList = new ArrayList<MyCustom>();

aList.add("My Name");

并尝试过这个;

aList.addAll("My Name");

aList.add((MyCustom)"My Name");

4 个答案:

答案 0 :(得分:0)

假设您的班级MyCustom并且有财产说name

class MyCustom{
     String name;
     public setName(String name){
        this.name=name;
     }
     .....
   }

ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
MyCustom myCustomObject=new MyCustom();
myCustomObject.setName("abc"); // here set the properties for your custom class object
aList.add(myCustomObject);

答案 1 :(得分:0)

您创建了一个包含MyCustom类型对象的列表,因此您无法向其添加String,除非您的对象扩展了String。

如果你想要一个包含String和MyCustom对象的列表,那么你必须像这样创建你的列表:

List<Object> list = new ArrayList<Object>();
list.add(new MyCustom(...));
list.add("Some String");

答案 2 :(得分:0)

如前所述,您的&#34; MyCustom&#34;既不是孩子也不是String的父母(也不可能)。 这将使我们需要你的“我的自定义”#34;对象或你想要它做什么/执行什么。

通过使用下面的代码,您可以将List中的对象类型限制为Mycustom,这很好。但是如果你必须在该列表中添加一个String,那么你应该删除这些类型。使用List接口也是一种更好的做法。

ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
List aList = new ArrayList(); //This will allow all objects to be added to list.

或者根据您对MyCustom对象的需要,您可以修改它以使用如下: aList.add(new MyCustom("Name String")); 要么     aList.add(new MyCustom().setName("Name String"));

答案 3 :(得分:0)

java中的ArrayList是泛型类型。意味着它可以存储任何对象。但是要在ArrayList中存储对象,我们需要指定类名,这意味着ArrayList只存储在声明数组列表时已指定的类名的对象。

在你的情况下

ArrayList<MyCustom> aList = new ArrayList<MyCustom>();

声明只包含MyCustom类对象但

的数组列表
aList.add("My Name");

您正在存储字符串值。并且String类和MyCustom类之间没有关系。所以java编译器显示错误。为了实现这个目标,你需要实现

ArrayList<String> aList = new ArrayList<String>();

aList.add("My Name");

Class MyCustom {

String field;

public void setField(String f) {

field=f;
}

public String getField() {

return field;
}

}

然后

ArrayList<MyCustom> aList = new ArrayList<MyCustom>();

aList.add(new MyCustom().setField("My Name"));