Java 中的有序列表映射实现

2022-09-02 11:11:19

我想知道是否有一个类在Java中实现和接口。MapList

我有一个数据结构,主要是.I 将字符串 (ID) 映射到 s。但是在我的代码的特定部分中,我需要向用户显示所有可用的ID。到目前为止,唯一的方法是写这个:MapImageImages

for (String id : myMap.keySet()) {
    // get the image like this "myMap.get(id)" 
}

因此,如果有一个同时实现两者的类会很好,所以我可以简单地编写:MapList

for (Image img : myMap) {
  // the image is img
}

有谁知道这样的实现?

编辑:在查看答案(这些答案都是正确的,投票上升)之后,我现在意识到我还需要对地图进行排序。当我说“排序”时,我的意思是我希望它具有特定顺序的值,我可以修改该顺序。我知道这不是最初的问题,但我刚刚意识到我需要它。

编辑2:看来我优柔寡断。我需要的是一个有序的地图,而不是一个有序的地图。抱歉造成混淆,人们。


答案 1

如果您需要按特定顺序排列商品,LinkedHashMap就是您的朋友 - 它使商品按广告顺序排列。TreeMap 将按照您给出的比较器或键的 compareTo 方法定义的顺序保存您的项目。


答案 2

对于有序地图,请查看LinkedHashMap。这将使您的密钥保持插入顺序。

如果您使用排序地图,它将按排序顺序保留键。(树状图是最常见的实现。

您可以使用的是 .这将允许您迭代 MapEntries 集。map.entrySet()

查看javadoc以获取更多信息。