如何在ArrayLists之间移动项目? Java的

时间:2015-01-19 13:40:03

标签: java arraylist

我正在制作一个游戏,一个RPG(是的另一个家伙试图制作其中一个),我已经成功完成了大部分工作,除了库存以及它与世界其他地方的行为,现在我想要以逻辑方式在列表之间移动项目,例如我杀死一个怪物,怪物掉落一个番茄,Tomato()将在ArrayList worldInventory中创建,并在x,y处绘制,如果玩家走过番茄,那个番茄应该被移到ArrayList Inventory中,如果玩家想装番茄,番茄应该搬进ArrayList装备。

因此,为了使事情更容易理解,我有3个列表:

 ArrayList<Item> worldInventory
 ArrayList<Item> Inventory
 ArrayList<Item> equipped.

我想在它们之间移动Tomato()的副本,如果Tomato()的值在列表中更改并且已移动,我希望Tomato()保留其值。

; D我会给一个大尺寸的互联网巧克力饼干,无论谁帮助我,非常感谢。谢谢你。

3 个答案:

答案 0 :(得分:1)

关于项目丢弃:

Tomato tomato = new Tomato();
worldInventory.add(tomato);

正在接机:

worldInventory.remove(tomato);
inventory.add(tomato);

装备:

inventory.remove(tomato);
equipped.add(tomato);

只是想知道你为什么需要配备ArrayList?

你可以在WorldObject中有一个布尔标志(boolean equipped = false) 当项目配备时,只需将其设置为true。

答案 1 :(得分:0)

如果将对象添加到列表中,它将保留其所有字段值。只是:

Tomato yourTomatoObject = otherList.remove(index);
inventory.add(yourTomatoObject);

答案 2 :(得分:0)

你可以这样做:

public static void main(String[] args) {
    ArrayList<String> test = new ArrayList<String>();
    ArrayList<String> test1 = new ArrayList<String>();
    test.add("test");
    test1.add(test.get(0));
    test.remove(0);
    System.out.println("" + test.size());
    System.out.println("" + test1.get(0));
}

您可以将其添加到一个arraylist并将其从另一个arraylist中删除。