【发布时间】:2015-08-14 00:28:20
【问题描述】:
我正在考虑自己创建一个复杂的数据类型,但不确定它的成本。
假设,我有 3 个列表,姓名,年龄,性别,
List<String> name = new ArrayList<String>;
List<Integer> age = new ArrayList<Integer>;
List<String> gender = new ArrayList<String>;
我想将这些列表的每个元素组合在一起,如下所示:
public class Person {
private String name;
private int age;
private String gender;
public void Person(String name,int age,String gender){
this.name = name;
this.age = age;
this.gender = gender;
}
public void getName () {
return name;
}
public void getAge () {
return age;
}
public void getGender () {
return gender;
}
}
然后我可以创建包含这些信息的对象:
Person person1 = new Person("John",22,"Male");
但问题是名字列表太大了,可能有 1,000,000 个名字(还有年龄和性别列表),这意味着我需要创建 1,000,000 个 Person 对象。将包含姓名、年龄和性别的对象传递给另一个类是个好主意,还是我应该分别传递这些姓名、年龄和性别?
与将字符串名称、整数年龄和字符串性别相加的成本相比,包含姓名、年龄和性别的对象有多大?
【问题讨论】:
-
您不应该一次将 100 万个对象加载到内存中。如果您这样做,您可能需要重新设计您的应用程序,因为充其量您会看到一些严重的性能问题。
-
我会听从@forgivenson 的建议..
-
正如@forgivenson 所说,您不应该一次在内存中加载一百万个对象,在您的情况下,您可能需要使用数据库来存储和检索对象。
标签: java