编码实践 - 我应该使用哪种编码方法?
问题描述:
对不起,这样一个模糊的标题。没有想到好的一个。编码实践 - 我应该使用哪种编码方法?
现状:
- 具有用户对象的列表。
- 需要为UserInfo对象创建数组。
- UserInfo对象是根据User对象中的信息创建的。 (目前有这方法)
哪种情况比较好?
- 我是否应该将用户到用户的整个列表传递给UserInfo转换方法。
- 或者我应该循环用户列表并将每个用户对象传递给转换方法并获取UserInfo。
实例:
List<User> users = .....;
UserInfo[] userInfos = getUserInfoFromUser(users); //(conversion method will loop and generate array, then return it.)
或
List<User> users = .....;
UserInfo[] userInfos = new UserInfo[users.size()]
for (int j = 0; j < users.size(); j++) {
userInfos[j] = getUserInfoFromUser(users.get(j));
}
在第一种方法中,我们通过一个大对象(用户的列表)作为参数,并在第二我们称之为相同的方法多个times.Which更好?
用户列表的大小范围是25-200个对象。
答
我更喜欢第一种方法,因为它很简单,而且参数将是users
对象的地址。所以在这种情况下,无论大小都不重要。
答
在这两种情况下,Java都会将引用传递给对象。在第一种情况下,它是对用户集合的引用,对第二种情况是对用户的引用。
答
我会推荐使用第一个选项:传递整个数组!
减少函数调用次数肯定会有所收益。
答
没有区别:在第一个版本中,函数实现将执行第二个版本。此外可能还想有一个User - > UserInfo函数。
答
我认为这取决于你会这样做的频率,因为你不想在你的代码中的多个地方重复相同的循环。
我建议建立两种方法,一种返回为单个用户和信息这对于用户的列表返回信息的其他:
public UserInfo[] getInfoForUsers(List<User> users) {
UserInfo[] userInfos = new UserInfo[users.size()];
for (int j = 0; j < users.size(); j++) {
userInfos[j] = getInfoForUser(users.get(j));
}
return userInfos;
}
public UserInfo getInfoForUser(User u) {
}
在第一个版本userInfos = getUserInfosFromUsers(用户)没有。 get(j) – 2011-12-20 09:30:15