我正在为 Android 编写基于文本的 RPG 游戏,以便熟悉 Java 和 XML。我想在按钮的 ListView 中显示一系列选项,并且根据用户按下的按钮,我想用一组新的选项相应地更新 Activity 。
例如,假设游戏从以下选择开始:
{option1, option2, option3, option4}
如果用户点击我要显示的选项2:
{2-option1, 2-option2, 2-option3, 2-option4}
或者假设用户点击了 4 而不是 2。然后:
{4-option1, 4-option2, 4-option3, 4-option4}
因此,我正在尝试确定一种速度高效/内存高效的方法来确定要显示的下一个 String[]
。
最初我在考虑构建一个 GIANT if-then-else 树(或 switch 语句 - 无关紧要),其中每个可能的选项都有一个 if 语句。 例如:
//choice
是用户选择的选项
if(choice==option1){
return {"1-option1", "1-option2", "1-option3"}
}else if(choice== 1-option1 ){
return {"1-1-option1","1-1-option2","1-1-option3"}
列表会一直继续下去,直到每个可能的选择都返回一个与要显示的下一组选项相对应的 String[]。
然后,我开始考虑用对象来做这件事可能会更干净、更容易:
MyObject newObject = MyObject(choice)
newObject.getOptions()
其中 choice
是一个构造函数参数,它将 String[]
初始化为正确的下一组选项; getOptions() 返回此 String[]
但是,这将是很多对象,我不确定它是否会通过 if/switch 语句方法简化事情。
那么,对于处理此类问题的有效方法有什么想法吗?
最佳答案
使用 Map (可能是 HashMap)在你的对象内部将 "option2"
与 {"2-option1", "2-option2", "2-option3", "2-option4"} 相关联
。
数据结构的选择在编程中非常重要。
关于java - 替代数千个 if-then-else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30985537/