So my problem is really simple. Having two lists, lets say: listA = {1,2,3,4}
and listB = {5,6,7,8}
I want to do some operations on pairs of items from different lists on coresponding positions so I want basically (1,5), (2,6), (3,7), (4,8)
. I know how to do it with external iterator but was wondering is there any nice solution of this problem using Stream Java 8 API. Second question is is there any way to skip creating Pair<T>
class?
Asked
Active
Viewed 44 times
0

Tunaki
- 132,869
- 46
- 340
- 423

Julian Rubin
- 1,175
- 1
- 11
- 23
-
1What you are trying to do is called "zipping" in functional programming. See the linked question. – Tunaki Jan 01 '16 at 13:58
-
Sorry for duplication. So is there any way to do something like `someList.stream().???????.foreach((x,y) -> ... )` ? Like changing the arity of stream, so in each element of stream i would have a pair which could be used as above? – Julian Rubin Jan 01 '16 at 15:13
-
Not with the Stream API itself. You either have to use an `IntStream` over the indices of the list or you can use StreamEx library which provdes a zip facility. – Tunaki Jan 01 '16 at 15:30