我必须存储产品及其相应的价格。 以下哪种方法更好:
方法一:
public class Product {
String productName;
Integer productCost;
}
方法2:
Map<String, Integer> product.
我认为使用Map
会让事情变得更容易,但仍然建议我使用值对象。
在内存和性能方面,使用方法 1 比方法 2 有什么优势吗?什么情况下可以使用这两种方法?
最佳答案
您应该考虑使用Map
如果您需要根据商品名称快速查找商品的价格。这里的区别在于,如果您选择第一个方法,则此查找操作将为 O(n);如果您选择第二个方法,则此查找操作将为 O(1)(因为使用第一个方法,您必须遍历整个 Product
集合才能找到名称正确的那个)。
如果您没有太多要存储的产品(例如 ~10,如 mentioned ),那么性能差异可能可以忽略不计,您最好选择更容易理解的方法/管理。随着您要存储的产品数量大幅增加,差异会变得更加明显。
当然,如果您不需要这种快速查找功能,那么使用 Map
就没有多大意义了。完全没有。
关于java - 在java中使用值对象比Map有什么优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18701745/