问题描述
我会用Map
我自己。但是请您相信,一对数组在您的情况下很有意义,那么采用一种方法来获取两个数组并返回Iterable
包装器呢?
从概念上讲:
for (Pair<K,V> p : wrap(list1, list2)) {
doStuff(p.getKey());
doStuff(p.getValue());
}
该Iterable<Pair<K,V>>
包装将隐藏边界检查。
解决方法
我继承了很多代码,这些代码大量使用并行数组来存储键/值对。这样做确实很有意义,但是编写循环访问这些值的循环有点尴尬。我真的很喜欢新的Java
foreach构造,但是似乎没有一种方法可以使用它遍历并行列表。
使用普通for
循环,我可以轻松地做到这一点:
for (int i = 0; i < list1.length; ++i) {
doStuff(list1[i]);
doStuff(list2[i]);
}
但是我认为这在语义上并不纯净,因为我们没有list2
在迭代过程中检查的界限。是否有一些聪明的语法类似于我可以用于并行列表的for-each?