包含3列(int、String、String)的Java 2D列表

包含3列(int、String、String)的Java 2D列表,java,list,2d,Java,List,2d,我是Java新手。我想知道存储不同类型数据的2D阵列的最佳选择是什么 这将是一张由各国组成的表格,每个国家都有首都,并且都在哥大陆。然后我必须这样存储它: 大陆ID |国家名称|首都 选择什么? 您可能想考虑使用国家>代码>类来保存这些数据,然后维护这个类的实例的列表/数组。< /p> public class Country { private int continentId; private String name; private String capital;

我是Java新手。我想知道存储不同类型数据的2D阵列的最佳选择是什么

这将是一张由各国组成的表格,每个国家都有首都,并且都在哥大陆。然后我必须这样存储它: 大陆ID |国家名称|首都


选择什么?

您可能想考虑使用<代码>国家>代码>类来保存这些数据,然后维护这个类的实例的列表/数组。< /p>
public class Country {
    private int continentId;
    private String name;
    private String capital;

    public Country(int continentId, String name, String capital) {
        this.continentId = continentId;
        this.name = name;
        this.capital = capital;
    }

    // ...
}
然后你会有一些类似于

List<Country> countries = new ArrayList<Country>();
countries.add(new Country(123, "USA", "Washington DC"));
...
List countries=new ArrayList();
添加(新国家(123,“美国”、“华盛顿特区”);
...

< /代码> 您可能想考虑编写一个<代码>国别>代码>类来保存这些数据,然后维护这个类的实例的列表/数组。

public class Country {
    private int continentId;
    private String name;
    private String capital;

    public Country(int continentId, String name, String capital) {
        this.continentId = continentId;
        this.name = name;
        this.capital = capital;
    }

    // ...
}
然后你会有一些类似于

List<Country> countries = new ArrayList<Country>();
countries.add(new Country(123, "USA", "Washington DC"));
...
List countries=new ArrayList();
添加(新国家(123,“美国”、“华盛顿特区”);
...

创建一个具有所需属性的国家/地区类,然后创建一个列表,键入国家/地区:

 list<Country> clist = new ArrayList<Country>();
list clist=new ArrayList();

或者任何你想要的清单。现在只需将country对象存储在列表中。

创建一个具有所需属性的country类,然后创建一个列表,键入country:

 list<Country> clist = new ArrayList<Country>();
list clist=new ArrayList();

或者任何你想要的清单。现在只将国家对象存储在列表中。

< P>如果大陆ID只是一个序列,并且没有添加任何特定的含义,那么你可能需要考虑一个代码< HashMap > /Cord>。如果命令很重要,请考虑<代码> LinkedHashMap < /代码>。

如果大陆ID确实携带含义,那么您可能需要考虑将所有变量移到一个类,比如“代码>国家< /代码>,并将其保存在一个列表中。如果您打算用国家名称检索而不是“代码>迭代器< /代码>,那么您可能需要考虑将对象存储在哈希图中,将密钥作为您的国家名称或资本或任何适合您的需要。一个HashMap而不是一个列表的原因是列表上的成员检查提供了一个线性性能,与HasMaph上的常量访问无关。

< P>如果大陆ID只是一个序列,并且没有添加任何特定的含义,那么您可能需要考虑一个“代码”> HashMap < /C> >以密钥作为国家名称和值作为资本。如果命令很重要,请考虑<代码> LinkedHashMap < /代码>。

如果大陆ID确实携带含义,那么您可能需要考虑将所有变量移到一个类,比如“代码>国家< /代码>,并将其保存在一个列表中。如果您打算用国家名称检索而不是“代码>迭代器< /代码>,那么您可能需要考虑将对象存储在哈希图中,将密钥作为您的国家名称或资本或任何适合您的需要。之所以使用HashMap而不是列表,是因为列表上的成员资格检查相对于HashMap上的固定时间访问提供了线性性能。

HashMap()

HashMap()

这听起来像是一个简单的
列表
,其中
国家
是一个包含每个国家数据的对象。如果需要按国家/地区名称搜索,则可能需要
地图。我不确定在这种情况下你所说的2D是什么意思。你能澄清一下吗?这听起来像是一个简单的
列表
,其中
国家
是一个包含每个国家数据的对象。如果需要按国家/地区名称搜索,则可能需要
地图。我不确定在这种情况下你所说的2D是什么意思。你能澄清一下吗?@Kikert是的,它应该工作得很好,而且比多维数组更容易管理。但是每个大陆上可能不止一个国家的国会大厦。@M.M.是的,
id
指的是大陆id。很好,我这样做了。谢谢;)@Kikert是的,它应该工作得很好,并且比使用多维数组更容易管理。但是每个大陆上可能不止一个国家的国会大厦。@M.M.是的,
id
指的是大陆id。很好,我这样做了。谢谢;)这将是完整的代码:
HashMap hm=newhashmap()。。。这是参数化的完整代码:
HashMap hm=newhashmap()
@hamena314 Um,您可以省略第二个rodundant参数化。因为Java 7,您可以使用diamond
参数。您的意思是
HashMap hm=new HashMap()?有意思,我不知道。谢谢这将是完整的代码:
HashMap hm=newhashmap()。。。这是参数化的完整代码:
HashMap hm=newhashmap()
@hamena314 Um,您可以省略第二个rodundant参数化。因为Java 7,您可以使用diamond
参数。您的意思是
HashMap hm=new HashMap()?有意思,我不知道。谢谢