2014-10-29 87 views
1

在我的代码中,我有大约150个用户的详细信息保存或trivers许多时间。创建多个对象降低性能?

哪一个更好的方法:

将用户详细信息保存在列表或对象中;

Map<String, List<String>> users= new Map<String, List<String>>(); 
List<String> data = new ArrayList<String>(); 
data.add(Name); 
data.add(address); 
data.add(phone); 
users.put(userID,data); 

或者

Map<String, UserData> users= new Map<String, UserData>(); 

public class UserData { 
    Public String name; 
    Public String address; 
    Public String phone; 
    UserData(String name,String address,String phone){ 
     this.name=name; 
     this.address=address; 
     this.phone=phone; 
    } 
} 

UserData userData=new UserData("Name","ADD","123") ; 
users.put(userID,userData); 

请给我建议,如果任何其他更好的方法,我可以在我的代码中使用。
对不起,对不起英语。

+2

第一个取决于将数据添加到列表中的顺序。第二个更清洁。 – EpicPandaForce 2014-10-29 13:17:44

+0

你只能在第二个例子中创建一个对象 - 它不会有太大的区别,特别是对于这么小的数字(150)。 – assylias 2014-10-29 13:20:27

+0

[项目55:明智地优化](http://homepages.dcc.ufmg.br/~rodolfo/dcc030-2-11/Effective%20Java%20Item%2055.htm) – zapl 2014-10-29 13:20:45

回答

5

Java是围绕对象设计的,JVM可以很好地处理它们。

设计您的系统应该如何设计,使用经过验证的OO设计最佳实践。如果存在性能问题(很可能不存在),那么当你遇到问题时就解决这个问题。

+2

准确。并用* real *,测量数据来处理它。如果你无法衡量它,你无法改善它。 – acdcjunior 2014-10-29 13:24:37

1

如果你有很多很多的细节设置为一个对象,第二种方法是正确的。因为这是告诉数据实际表示的唯一方式。

第一个是一个简单的项目列表,您可以依赖某些数据位于某个位置的事实。但是,如果数据的一部分丢失了......那么......你会插入null的吗?不是存储有意义数据的好方法。

创建具有多个属性的类可能会在初始化时导致不一致的状态。如果您依赖于每个属性都在创建后设置并且在使用此类时某些属性不为null这一事实。

因此,我建议在这种情况下使用builder pattern