Gov*_*hod 5 java android hashmap data-structures
在某些情况下,我当时遭受了手术,
我们可以使用HashMap或Model Class(POJO)作为ArrayList Generic Like ArrayList<HashMap<K,V>>() OR ArrayList<ModelName>().
你能否建议我哪一个更好的记忆观点和表演老虎钳.
我知道两者在这方面都比较好,但我只是想知道我是否有选择采取两种选择....哪种更好?
例如,假设我有两个变量,它们都是POJO类中的字符串,两者都是HashMap.
所以我们有列表对象喜欢..
final ArrayList<Abc> listAbc = new ArrayList<Abc>();
for(final int i=0;i<2;i++){
Abc modelAbc = new Abc();
abc.setName("name");
abc.setLastName("lastName");
listAbc.add(modelAbc);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我必须采取ABC类的两个对象,
在带有List对象的HashMap中它将......
final ArrayList<HashMap<String,String>> listMap = new ArrayList<HashMap<String,String>>();
for(final int i=0;i<2;i++){
HashMap<String,String> hashAbc = new HashMap<String,String>();
hashAbc.put("NAME","firstName");
hashAbc.put("LASTNAME","lastName");
listMap.add(hashAbc);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我必须使用两个HashMap对象.
现在告诉我哪些用于获得更好的性能?哪个是高记忆的占用者?
通常,您使用 Collection ( List, Map, Set) 来存储具有相似特征的对象,这就是泛型存在的原因。因此,使用 aMap来存储多个类的对象会迫使您在获取时强制转换已存储的每个对象,这不是我们可以编写的最干净的代码。此外,即使使用 a HashMap,其中使用hashCode值可以轻松获取对象,访问速度也比 Java Bean 属性慢……并且您必须始终确保这些对象具有良好的hashCode()生成器。但无论如何,我无法想象这何时会成为常规应用程序性能的瓶颈。
所以我的建议是每次在编译时知道要存储多少属性及其类时使用 Java Bean,使用 Map 存储同一类的元素。
例如,如果您有一个包含用户的数据库表,并且您想“缓存”用户以快速访问其中的任何人,您可以执行以下操作:
class User {
long id;
String name;
... //other attributes
//setters and getters
}
Run Code Online (Sandbox Code Playgroud)
然后将它们存储在 Map 中,以便通过它们的 id 快速访问它们:
Map<Long,User> usersMap= new HashMap<>();
...
usersMap.put(user.getId(),user);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7145 次 |
| 最近记录: |