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

时间:2014-12-26 06:29:34

标签: java data-structures iterator hashmap

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

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

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

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

然后我根据顺序迭代它 我的新hashmap将具有:

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

现在,当我尝试运行它时,就会出现这样的结果:

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

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));
        }

    }

}