反转Map.key,map.value输出

时间:2014-08-31 17:12:17

标签: java output reverse

我有这个输出,它以相反的顺序出现。最后的打印输出是我想要的第一个打印输出。我该怎么扭转呢?这是一个HashMap。

System.out.println();
            int c = 0;
            System.out.print(newName + "= ");
            for (Map.Entry<Integer, Integer> entry : result.entrySet()) {

                System.out.print(entry.getValue() + "X^" + entry.getKey());
                c++;
                if (c != result.size()) {
                    System.out.print("+");
                }

1 个答案:

答案 0 :(得分:3)

要在迭代时使用LinkedHashMap而不是HashMap来保留广告订单,请反过来执行此操作:

List<Map.Entry<Integer, Integer>> entries = new ArrayList<>(result.entrySet());
Collections.reverse(entries);

for (Map.Entry<Integer, Integer> entry : entries) {
    // same body as before
}

或者,我们可以使用反向迭代器:

List<Map.Entry<Integer, Integer>> entries = new ArrayList<>(result.entrySet());
ListIterator<Map.Entry<Integer, Integer>> iter = entries.listIterator();

while (iter.hasPrevious()) {
    Map.Entry<Integer, Integer> entry = iter.previous();
    // same body as before
}