繁体   English   中英

大小未知的多维数组

[英]Multidimensional array with unknown size

我需要创建一个未定义大小的数组,其中将包含用户信息。

例如:

user[0]["name"] = "Patrick";

但是,标准的Java数组似乎需要一个已知的长度,我不知道。

我可以使用什么替代方法? (我也会很高兴看到一些编码示例)我使用的是TCP框架( ),该框架不允许使用构造函数传递对象。 因此,据我所知,不可能创建User对象。

首先,您应该使用对象而不是任意的数据结构,如果您不知道大小,我将使用列表

List<Person> people = new ArrayList<Person>();
people.add(new Person("Patrick"));

在Java中,我们只能将整数值用于单元格索引。

我想您正在寻找地图列表:

List<Map<String, String>> persons = new ArrayList<Map<String, String>>();

// add Patrick
Map<String, String> person = new HashMap<String, String>();
person.put("name", "Patrick");
person.put("age", "23");
persons.add(person);

// add Sue
person = new HashMap<String, String>();
person.put("name", "Sue");
person.put("age", "21");
persons.add(person);

要访问所有名称,例如:

for (Map<String, String> person:persons) {
  System.out.println(person.get("name"));
}

您不能在Java中使用关联数组。 换句话说,您不能使用“名称”作为键。

但是您可以通过执行以下操作来创建空数组而无需指定大小:

String[] array = new String[]{};

但是,尝试将某些东西放入此数组将为您提供indexoutofbound异常

您应该考虑创建一个类(例如Person),并且仅使用列表来管理它。 您可以执行以下操作:

List<Peson> myLyst = new ArrayList<Person>();
Person person = new Person("Patrick");
myList.add(0, person);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM