java - 迭代 HashMap ?

标签 java list loops

我正在尝试用 Java 取得高分。 基本上我想要一个 HashMap 来保存 double 值(因此索引从最高的 double 值开始,这样我更容易对高分进行排序),然后第二个值将是客户端对象,如下所示:

private HashMap<Double, TempClient> players = new HashMap<Double, TempClient>();

并插入新值:

        TempClient client = new TempClient(kills, rank, deaths, name);
        this.players.put(client.getKdr(), client);

现在,我当然无法迭代 HashMap ,因为它通过键而不是索引获取列表项。

如何迭代 HashMap ?或者对我的案例有什么好的想法吗?

我在 Foo 类中尝试过:

输出:

0.5
0.6
0.9
0.1
2.5

代码:

public class Foo {

    public static void main(String[] args) {
        HashMap<Double, String> map = new LinkedHashMap<Double, String>();
        map.put(0.5, "hey");
        map.put(0.6, "hey1");
        map.put(0.9, "hey2");
        map.put(0.1, "hey425");
        map.put(2.5, "hey36");
        for (Double lol : map.keySet()) {
            System.out.println(lol);
        }
    }

}

最佳答案

你可以像这样迭代。

for (Double k : players.keySet())
{
    TempClient p = players.get(k);
    // do work with k and p
}

如果您想对键进行排序,请使用例如树形图。
如果您想按照插入的顺序保留键
他们在那里,使用例如LinkedHashMap。

关于java - 迭代 HashMap ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20955912/

相关文章:

javascript - 如何在循环中使用 Promises 并确保在继续之前都已完成?

list - Python列表查找具有接近值的元素

php - 使用 Javascript 为输入字段数组动态创建唯一 ID

c - 反转数组中的元素

java - 在 Java 中, boolean 值 "order of operations"是什么?

python - 使用两个列表排序产生的排序对第三个列表进行排序?

.net - 将 IEnumerable 转换为列表

java - 多人游戏(Java 套接字 java.io.StreamCorruptedException : invalid type code: 00)

java - Admob 测试不工作

java - 构建依赖于其他库的 Java 库