【发布时间】:2015-02-26 11:23:05
【问题描述】:
我是 Java 新手,我正在制作一个用于包装此类数据的结构:
Object:
name:'Obj1'
otherAttr:'...'
Object:
name:'Obj2'
otherAttr:'...'
Object:
...
我知道我可以制作我的自定义“对象”类*,但对于使用内置 java 结构,我使用List<Map<String, String>>。所以,设置新的:
List<Map<String, String>> objects = new ArrayList<Map<String, String>>();
foreach(databaseRow){
Map<String, String> newObject = new HashMap<String, String>();
newObject.put('name', '...');
newObject.put('otherAttr', '...');
objects.add(newObject);
}
我有两个问题:
1- 如果结构的初始化(作为ArrayList 和HashMap)是大量Java 结构之间的最佳选择。
2- 如果有一个内置结构并不意味着所有这些初始化(对于 List 和每个 Map)。
谢谢!
(*)澄清:我在我的代码中使用了大量类似的结构,并且我会避免制作大量自定义类。但如果这是最好的方法,那就去做吧!
【问题讨论】:
-
如果你想让它干净,你真的应该创建你自己的自定义类。是否有任何具体原因需要避免这种情况?
-
我同意@Haroldo_OK 的观点,但只是为了更清楚地说明这一点:您自己的类将由 Java 集合框架中的数据结构组合。他们只是在使用它们并为您的类型提供语义上更有意义的界面。
-
hmm 只是一个提示,你为什么不自己使用地图结构而不是在它上面创建一个列表
-
@nafas 因为在那之后,我想遍历对象列表,并为每个人做一个动作。我无法弄清楚如何仅使用地图来制作它。
-
@T30 但是为什么是地图而不是自定义类,您可以在其中隐藏实现细节,即封装的全部要点。
标签: java data-structures