java - 反向Map.key、map.value输出

标签 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("+");
                }

最佳答案

要在迭代时保留插入顺序,请使用 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
}

关于java - 反向Map.key、map.value输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594351/

相关文章:

Java使用和使用正则表达式分割字符串

javax.xml.bind 的 Base64 编码器/解码器吃掉字符串的最后两个字符

kotlin - 如何在 Kotlin 中输出 Int 大小(以位、最小值和最大值为单位)?

c# - 反转数组中的所有元素

java - Android 画图应用程序数组

powershell - Powershell-将控制台输出转换为变量(不是stdout,不是stderr)

hadoop - Apache hive : LOAD DATA vs INSERT OVERWRITE OUTPUT FILE SIZE

string - 如何在 Go 中反转字符串?

R中箱线图中的反向y轴

java - 在Springs框架之外运行Gradle测试时找不到属性文件