ArrayLists的对象,如何从对象中添加/删除它们?

时间:2012-10-07 13:26:30

标签: java object arraylist

public class MapData {

    ArrayList<String> Redsp = new ArrayList<String>();
    ArrayList<String> Bluesp = new ArrayList<String>();
    ArrayList<String> Playersp = new ArrayList<String>();

    public MapData(ArrayList<String> redsp, ArrayList<String> bluesp, ArrayList<String> playersp) {
        Redsp = redsp;
        Bluesp = bluesp;
        Playersp = playersp;
    } 
}

如何制作MapData对象,并在对象中添加/删除项目? 我想将{6}项添加到bluespredsp,将20添加到playersp

MapData TEST = new MapData(null,null,null);
TEST.??

4 个答案:

答案 0 :(得分:2)

我会为MapData创建更多方法

例如添加到Bluesp

public void addToBlueSp(String string) {
    Bluesp.add(string);
} 

我也会使用camelCase,因为这是Java中的标准操作。

我可能会建议在ctor中创建ArrayLists,因为几乎没有点将它们传递给对象,然后使用该对象添加/删除它们中的项目。如果您有ArrayList,则可以将它们添加到此对象之外。但这是一个设计事物......

答案 1 :(得分:0)

使用add()remove()方法

- 您可以选择创建添加和删除 methods或将所有ArrayList设为静态

<强>例如

public void addToRedSp(String string) {

    Redsp.add(string);

} 


public void remToRedSp(String string) {

    Redsp.remove(string);

} 

MapData TEST = new MapData(null,null,null);

    // To add

    test.addToRedSp("Vivek");

    // To remove

    test.remToRedSp(0);   // or  MapData.Redsp.remove("Vivek");

- ArrayList静态

public static ArrayList<String> Redsp = new ArrayList<String>();
public static ArrayList<String> Bluesp = new ArrayList<String>();
public static ArrayList<String> Playersp = new ArrayList<String>();



MapData TEST = new MapData(null,null,null);

// To add

MapData.Redsp.add("Vivek");

// To remove

MapData.Redsp.remove(0);   // or  MapData.Redsp.remove("Vivek");

答案 2 :(得分:0)

最简单的方法是为三个集合提供getter,然后以普通方式操作它们。此类操作将对成员字段生效:

public class MapData {

    ArrayList<String> Redsp = new ArrayList<String>();
    ArrayList<String> Bluesp = new ArrayList<String>();
    ArrayList<String> Playersp = new ArrayList<String>();

    public MapData(ArrayList<String> redsp, ArrayList<String> bluesp, ArrayList<String> playersp) {
        Redsp = redsp;
        Bluesp = bluesp;
        Playersp = playersp;
    }

    public ArrayList<String> getRedsp(); 
}

然后你这样做:

MapData TEST = new MapData(null,null,null);
TEST.getRedsp().add("Text1");
TEST.getRedsp().add("Text2");

等等。

但是,请注意:您不使用空列表构造,但使用null并且我的代码将触发NPE。考虑将默认值设置为空列表。

答案 3 :(得分:0)

您可以将List的getter和setter方法添加到MapData并添加如下新元素:

TEST.getRedsp().add("hello");

public ArrayList<String> getRedsp()
{
    if(Redsp == null)
        Redsp = new ArrayList<String>();

    return Redsp;
}

或者您可以为MapData

引入每个列表的添加方法
TEST.addToRedsp("hello");

public boolean addToRedsp(String value)
{
    if(Redsp == null)
        Redsp = new ArrayList<String>();

    return Redsp.add(value)
}

同样继续删除案例。

顺便说一下:看看variable naming conventions