java - 如何 "program"一个可以容纳多种类型元素的包?

标签 java data-structures

我正在尝试使用 java 将棋盘游戏变成多人游戏,但我有一些关于如何实现我想要的东西的问题。

在游戏中,有一个袋子可以容纳生物、建筑和魔法。每个玩家从这个袋子中抽取以获得他们的游戏碎片。然后,他们要么立即将棋子放在他们拥有的游戏盘中的图 block 上,要么保留这些棋子并在以后玩。这些瓷砖可以容纳生物、魔法、建筑物、堡垒。

现在我有一个 ArrayList 保存所有生物,每个图 block 都有一个 ArrayList 可以保存生物。

看起来 ArrayList 不是我想要使用的,因为我必须让 ArrayList 为 Object 类型(这很糟糕)。关于如何设计程序以便不必转换为对象有什么想法吗?我不确定我是否需要一个包装类,或者只是多个数组列表,但令人困惑的是,当玩家从包含一堆不同东西的袋子中进行绘制时。我应该能够轻松区分棋盘上正在移动的内容。

有什么建议吗?

最佳答案

生物、建筑物和魔法都可以实现相同的接口(interface)或扩展相同的类吗?然后您可以拥有一个包含该接口(interface)或类的 ArrayList。或者,只需拥有一个包含三个 ArrayList 的数据结构,并编写在它们之间进行公平选择的代码。

关于java - 如何 "program"一个可以容纳多种类型元素的包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390187/

相关文章:

java - SOQL 查询字符串的正则表达式

java - 索引目录未出现

c - 释放 C 中的链接结构

arrays - 为什么在动态数组末尾插入是 O(1),而在中间插入是 O(n)?

performance - 是否有线性解决方案来确定后序序列是否是有效的 BST?

java - 如何通过 JOptionPane 捕获的用户输入将数据添加到 JList?

java - 线程interrupt()不会中断线程

C 编译 - "undefined reference to"?

c - 使用C中的fscanf从两个.txt文件中读取,存储在结构中并在.txt文件中输出

java - Apache Wicket 口 : Update value of the Label after the Button has been pressed