0
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 个项目,在 中添加bluesp20redsp个项目playersp

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

4 回答 4

2

我会为 MapData 创建更多方法

例如添加到 Bluesp

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

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

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

于 2012-10-07T13:32:18.587 回答
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");
于 2012-10-07T13:32:41.470 回答
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。考虑将默认值设置为空列表。

于 2012-10-07T13:33:33.127 回答
0

您可以为Lists添加 getter 和 setter 方法MapData并添加新元素,如下所示:

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

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

    return Redsp;
}

或者您可以为每个列表引入一个 add 方法MapData

TEST.addToRedsp("hello");

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

    return Redsp.add(value)
}

对删除案例进行类似处理。

顺便说一句:看看变量命名约定

于 2012-10-07T13:33:39.483 回答