У меня есть два списка с одинаковым количеством аргументов, и мне нужен элегантный способ их объединения (а не объединения).
Вот мой текущий (не очень хороший) способ сделать это (просто чтобы вы знали, что я пытаюсь сделать).
List<Double> list1 = ... // init here
List<Double> list2 = ... // init here
Function<Double, Double, Double> myFunc = ... // init here
List<Double> ret = new ArrayList<Double>(size);
for (int n = 0; n < size; ++n)
{
ret.add(func.apply(list1.get(n),
list2.get(n)));
}
return ret;
interface Function <X, Y, Z>
{
Z apply(X arg1, Y arg2);
}
Есть ли некоторые существующие помощники, которые позволили бы мне сделать что-то вроде:
Lists.combine(list1, list2, myFunction);
Например, предположим, что у меня есть два списка целых чисел и функция f(x, y) = x * y)
.
Я хочу, чтобы полученный список был списком (x[i] * y[i])
Конкретно,
list1 = {1, 2, 3, 4}
list2 = {2, 3, 4, 4}
result = {2, 6, 12, 15}
Спасибо