Temp在java中存储一个对象

时间:2011-11-26 02:54:48

标签: java object store move

是否可以临时存储对象?

我打算做的是暂时存储一个对象,删除原始文件然后将临时对象放到别处?

因此,这给人的印象是我有效地“移动”了对象。

非常感谢,

4 个答案:

答案 0 :(得分:1)

Player tempPlayer = new Player();
tempPlayer.setValueA() = originalPlayer.getValueA();
// copy all values this way
team.remove(originalPlayer);
// more code
team2.add(tempPlayer);

这个答案看起来不错吗?

答案 1 :(得分:0)

如果我理解正确,你有两个清单:

ArrayList<Player> team1, team2;

您希望将玩家从team1移至team2


您似乎想要向新团队添加副本,而不是原始副本。略有改变:

有两种方法可以做到这一点,简短方法和明确方式。无论哪种方式,你都需要玩家的索引。你可能想要明确的方式:

Player oldPlayer = team1.remove(playerIndex);
Player newPlayer = oldPlayer.clone();
team2.add(newPlayer);

作为参考,更快的方法是:

team2.add(team1.remove(playerIndex).clone());

虽然这确实需要您实现Cloneable接口。

答案 2 :(得分:0)

这假设您打算从A队移动到B队的队员是A队中的 k 第(th)队员(从0开始计算,即第一名队员k = 0等):

ArrayList<Player> teamA = ... // contains player p
ArrayList<Player> teamB = ... // does not contain player p
Player p = teamA.get(k);
teamB.add(p);
teamA.remove(p); // Note: you can also use index

根据具体情况,可能还有其他方法可以访问您打算移动的播放器。有关更多可用方法,请参阅ArrayList

答案 3 :(得分:0)

我知道我有点迟了,但是对于那些发现自己的人来说:

在这种情况下,最实用的是StacksDeques。 这些允许您将对象添加到堆栈然后弹出它们以删除它们。 堆栈的工作方式与Deques的工作方式非常相似,但Deques在编码时实际上比Stacks更灵活,更受欢迎。