java - 在java中使用值对象比Map有什么优势

标签 java object dictionary hashmap

我必须存储产品及其相应的价格。 以下哪种方法更好:

方法一:

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/

相关文章:

java - 为什么我的变量没有重置每个循环?

javascript - 将对象字符串转换为JS对象

c++ - 使用 map 类型创建 gcc 错误 : expected unqualified-id before ‘for’

java - Eclipse PDE 日志记录

javascript - JavaScript 上的火星到漫游者。我需要能够向流动站发出一系列命令并按顺序执行它们。

java - ListActivty 中使用的适配器出现 IllegalStateException

C# 字典 - 字典中不存在给定的键

c# - 使用 Spring.Net 的不区分大小写的字典

java - 如何根据值按升序排列数组列表

java - WordPress、CMS Made Simple 还是其他?