给出两个Iterables
val keys = newLinkedList('foo', 'bar', 'bla')
val vals = newLinkedList(42, 43, 44)
我想关联两个列表中的每个项目,如下所示:
val Iterable<Pair<String, Integer>> expected
= newLinkedList('foo'->42, 'bar'->43, 'bla'->44)
好的,我可以手动迭代两个列表。
另一方面,这闻起来像是
对于Python中的示例,这将是一个明智的选择,因为他们的map函数可以使用多个列表。
如何使用Xtend2 +和miniumum代码解决这个问题?
答案 0 :(得分:7)
final Iterator it = vals.iterator();
expected = Iterables.transform(keys, new Function<String, Pair>() {
public Pair apply(String key) {
return new Pair(key, it.next());
}
});
由A.H。添加:
在Xtend中,这看起来像这样:
val valsIter = vals.iterator()
val paired = keys.map[ k | k -> valsIter.next ]