Collections 何时选择hashmap和arraylist?

Collections 何时选择hashmap和arraylist?,collections,Collections,请用我正在混淆的最佳示例场景解释上述问题。问题过于宽泛,但会尽量缩短: 当您必须基于key(key可以是任何东西)获取值时,您可以使用hashmap。考虑一个电话号码簿,在那里你可以找到合适的名字,查找人名以查找他的号码。 而若你们有相似的对象,并且想以某种方式存储它们,然后再检索它,比如说通过索引或者逐个遍历它们,那个么你们可以选择列表。因此,如果您的任务是查找50岁以上的员工,您只需返回50岁以上员工的列表。如果要根据关键字或列表中的任何标识获取特定对象,则必须迭代list get对象并与其

请用我正在混淆的最佳示例场景解释上述问题。

问题过于宽泛,但会尽量缩短:

当您必须基于key(key可以是任何东西)获取值时,您可以使用hashmap。考虑一个电话号码簿,在那里你可以找到合适的名字,查找人名以查找他的号码。
而若你们有相似的对象,并且想以某种方式存储它们,然后再检索它,比如说通过索引或者逐个遍历它们,那个么你们可以选择列表。因此,如果您的任务是查找50岁以上的员工,您只需返回50岁以上员工的列表。

如果要根据关键字或列表中的任何标识获取特定对象,则必须迭代list get对象并与其值进行比较

在映射中,您可以直接创建键值对。您可以传递键并获取值

例:

存在一个具有多个属性的对象用户,其中一个属性是用户代码

现在,如果您有用户对象列表,那么您将逐个获取用户对象并比较每个用户的代码…但在地图中,您可以直接将用户对象与用户代码存储为密钥传递密钥并获得所需的对象

map.get(“key”)


但若您的要求不是基于密钥类型访问,则最好使用列表。。例如,您需要仅显示项目列表或必须执行子列表。

欢迎使用StackOverflow!我们很高兴在这里看到新成员。在得到任何答案之前,您可能会阅读以下内容:。对于检索和插入基于场景的arraylist和hashmapSo中最好的值,最佳情况下的映射将为您提供O(1),而基于索引的列表查找也将为您提供O(1),因此这取决于您要执行的操作。