0

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

例如:

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

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

我可以使用什么替代方案?(我也很乐意看到一些编码示例)我正在使用 TCP 框架(),它不允许使用构造函数传递对象。因此,据我所知,制作用户对象是不可能的。

4

4 回答 4

3

首先,您应该使用 Objects 而不是任意数据结构,如果您不知道大小,我会使用 List

List<Person> people = new ArrayList<Person>();
people.add(new Person("Patrick"));
于 2012-12-03T10:53:35.520 回答
1

在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"));
}
于 2012-12-03T10:53:04.760 回答
0

您应该考虑创建一个类(如 Person)并仅使用 List 来管理它。你可以这样做:

List<Peson> myLyst = new ArrayList<Person>();
Person person = new Person("Patrick");
myList.add(0, person);
于 2012-12-03T10:56:36.760 回答
0

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

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

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

但是,尝试将某些内容放入此数组中会给您一个 indexoutofbound 异常

于 2012-12-03T10:53:28.867 回答