微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java LinkedHashMap迭代

如何解决Java LinkedHashMap迭代

您可能做错了…

首先,HashMap无法存储整数,它需要适当的对象-如整数-数组是一个对象,尽管它隐藏在某些语法糖的后面。

如果它们恰好具有相同的大小,这是循环遍历这两个地图的方法,我想这就是您的意思。

    Iterator<int[]> expenses = val1.values().iterator();
    Iterator<Integer> people = val2.values().iterator();

    assert val1.size() == val2.size() : " size mismatch";
    while (expenses.hasNext()) {
        int[] expensesPerMonth = expenses.next();
        int persons = people.next();

        // do strange calculation
        int strangeSum = 0;
        for (int idx = 0; idx < expensesPerMonth.length; idx++) {
            strangeSum += persons * expensesPerMonth[idx];
        }
        System.out.println("strange sum :" + strangeSum);
    }

但是您可能应该回过头来重新考虑如何存储数据–为什么要使用地图,关键是什么?

例如,创建一个代表每月支出和人数的组合的对象会更好吗?

解决方法

我有两个哈希图

LinkedHashMap<String,int[]> val1 = new LinkedHashMap<String,int[]>();
LinkedHashMap<String,int> val2 = new LinkedHashMap<String,int>();

每个哈希图都有不同的键和值。我试图同时遍历两个哈希图,并乘以每个值val1->int[] to val2->int

最简单快捷的方法是什么?我在两个哈希图中都有数千个值。

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。