关于java:添加了基于订单值的HashMap循环

Looping over HashMap based on order values were added

本问题已经有最佳答案,请猛点这里访问。

我需要循环创建一个hashmap来创建一个新的hashmap并为其添加一个整数。

现在我正在使用迭代器,但似乎它没有按特定顺序迭代

所以,如果我把这些数据放在我的地图中

1
2
3
map.put(one, alpha)
map.put(two, delta)
map.put(three, gamma)

然后我根据订单迭代它
我的新hashmap将具有:

1
2
3
key: one value: 1
key: two value: 2
key: three value: 3

现在,当我尝试运行它时,它出现如下:

1
2
3
key: two value: 1
key: one value: 2
key: three value: 3


如果您希望按照它们添加到Map的顺序迭代键,请使用LinkedHashMap。

如果您希望按字母顺序迭代键,请使用TreeMap。

如果您希望以您自己定义的任意顺序迭代键,请使用带有提供的Comparator的TreeMap。


您需要根据需要按键或值对它们进行排序。 下面的示例将按键对它们进行排序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class Main {

    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();

        map.put("1","alpha");
        map.put("3","gamma");
        map.put("2","delta");


        List<String> list = new ArrayList(map.keySet());
        Collections.sort(list);

        for (String s:list){
            System.out.println(map.get(s));
        }

    }

}