gpt4 book ai didi

java - 将多个 Iterable 包装成一个 Iterable

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:34:01 25 4
gpt4 key购买 nike

假设我有两个集合:

Collection< Integer > foo = new ArrayList< Integer >();
Collection< Integer > bar = new ArrayList< Integer >();

并说有时我想单独迭代它们,但有时一起迭代。有没有一种方法可以围绕 foobar 创建一个包装器,以便我可以迭代组合对,但每当 foo 时也会更新和 bar 改变了吗? (即 Collection.addAll() 不适合)。

例如:

Collection< Integer > wrapper = ... // holds references to both bar and foo

foo.add( 1 );
bar.add( 99 );

for( Integer fooInt : foo ) {
System.out.println( fooInt );
} // output: 1

for( Integer barInt : bar ) {
System.out.println( barInt );
} // output: 99

for( Integer wrapInt : wrapper ) {
System.out.println( wrapInt );
} // output: 1, 99

foo.add( 543 );

for( Integer wrapInt : wrapper ) {
System.out.println( wrapInt );
} // output: 1, 99, 543

谢谢!

最佳答案

使用GuavaIterables.concat方法。

Iterable<Integer> wrapped = Iterables.concat(foo, bar);

关于java - 将多个 Iterable 包装成一个 Iterable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com