【发布时间】:2014-11-15 13:01:11
【问题描述】:
背景
我目前正在开发一个向用户提问的 Android 应用程序。目前我正在创建用于提问的模块。现在我正在开发一个地形模块,它将能够向用户询问有关某个国家的各种问题,这些问题将显示给他们。
问题
对于这个模块,我需要一个世界上所有国家的列表。我目前有一个
Country 类,它有一个String[] 数组,其中包含所有国家的英文名称(±200)。我还想要Country 类中的一些其他属性,例如它们的首都、省份和它们的翻译。所有这些属性都应该从预先确定的列表中选择。这个列表也应该相当灵活,以便将来我可以轻松地向它们添加新属性。我目前遇到的问题是我不太确定如何创建这样的列表。我有几个想法,但它们似乎都有缺陷、笨重,或者它们根本无法在 Java 中工作。以下是我的一些想法的示例:
- 创建一个包含所有国家/地区值的多维数组,然后可以使用预定义的索引轻松选择这些值。这是我在 PHP 编程时经常使用的东西,因为它可以容纳各种不同的类型。您还可以在 PHP 中定义数组的键(索引),但这在 Java 中不起作用。
- 为所有国家/地区创建一个枚举,并使用与特定国家/地区关联的
int从首都/省数组中选择值。这对我来说有点太麻烦了,每次我想为这个国家添加另一个属性/问题时,我都需要创建一个巨大的数组(在我看来,Country类是乱七八糟的)。 - 为我希望
Country拥有的所有属性创建类。这样做的好处是我可以使用更多信息进一步扩展这些类(例如提供Capital类属性,例如:amount_of_residents),并且可能创建一个复杂的翻译类。我只是想知道这是否是最有效/最合乎逻辑的方式?
我觉得应该有一些非常好的解决方案来解决我面临的这个问题,但是为了我的爱,我就是想不通。如果你们知道什么是最好的选择(我目前倾向于选择 3),或者给我另一个更有效的问题解决方案,我们将不胜感激。
注意:我没有添加任何代码,因为我觉得没有必要。如果有人想看一些代码,我很乐意提供。
【问题讨论】:
标签: java android arrays collections