我必须存储产品及其相应的价格。 以下哪种方法会更好:
方法1:
public class Product {
String productName;
Integer productCost;
}
方法2:
Map<String, Integer> product.
我认为使用Map
会使事情变得更容易,但我仍然建议使用值Object。
在内存和性能方面,使用方法1优于方法2是否有任何优势?在什么情况下我们可以使用这两种方法?
答案 0 :(得分:1)
如果要保持software quality
高,建议使用Object中的值。使用Map
时,只要您需要使用Object的值,就应该“携带”它,因此您可以创建它的大量副本。从Map
获取值也会对性能产生影响,而且您还可以保存在其中创建的所有对象,从而阻止garbage collector
在不再需要时将其删除。
答案 1 :(得分:1)
如果您需要根据商品名称快速查询商品的价格,则应考虑使用Map
。这里的区别在于,如果选择第一种方法,则此查找操作将为O(n);如果选择第二种方法,则此查找操作将为O(1)(因为第一种方法必须遍历整个Product
s集合找到一个正确名称的人。)
如果您没有太多想要存储的产品(例如〜{10,就像mentioned那样),那么性能差异可能会微不足道,您可能最好选择哪种方法更容易理解/管理。随着您想要存储的产品数量大幅增加,差异会变得更加明显。
当然,如果您不需要这种快速查找功能,那么使用Map
就没有多大意义。