在Java和Android中哪个是更好的HashMap与POJO(Getter Setter,Model Class)

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对象.

现在告诉我哪些用于获得更好的性能?哪个是高记忆的占用者?

Pab*_*ano 5

通常,您使用 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)