何时在LinkedList或ArrayList上使用HashMap,反之亦然

何时在LinkedList或ArrayList上使用HashMap,反之亦然,第1张

何时在LinkedList或ArrayList上使用HashMap,反之亦然

列表表示元素的顺序。映射用于表示键/值对的集合。

虽然可以将地图用作列表,但这样做有一定的缺点。

维护顺序:
-按定义排序列表。您添加项目,然后您可以按照插入项目的顺序遍历列表。将项目添加到HashMap时,不能保证以与放入项目相同的顺序检索这些项目。HashMap的子类(如linkedHashMap)将保持该顺序,但通常不能保证Map的顺序。

键/值语义: -映射的目的是基于键存储项目,该键可在以后用于检索项目。只有在键恰巧是列表中位置的有限情况下,列表才能实现类似的功能。

代码的可读性 请考虑以下示例。

    // Adding to a List    list.add(myObject);         // adds to the end of the list    map.put(myKey, myObject);   // sure, you can do this, but what is myKey?    map.put("1", myObject);     // you could use the position as a key but why?    // Iterating through the items    for (Object o : myList)// nice and easy    for (Object o : myMap.values())   // more pre and the order is not guaranteed

集合功能 通过Collections类可以为列表提供一些出色的实用程序功能。例如 …

    // Randomize the list    Collections.shuffle(myList);    // Sort the list    Collections.sort(myList, myComparator);

希望这可以帮助,



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5350505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-09
下一篇 2022-12-09

发表评论

登录后才能评论

评论列表(0条)

保存