Использование Google Guava (Google Commons), есть ли способ объединить два одинаковых размера списка в один список, с новым списком, содержащим составные объекты из двух входных списков?Google Guava «zip» два списка
Пример:
public class Person {
public final String name;
public final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "(" + name + ", " + age + ")";
}
}
и
List<String> names = Lists.newArrayList("Alice", "Bob", "Charles");
List<Integer> ages = Lists.newArrayList(42, 27, 31);
List<Person> persons =
transform with a function that converts (String, Integer) to Person
System.out.println(persons);
выведет:
[(Alice, 42), (Bob, 27), (Charles, 31)]
Зачем вам нужна специализированная функция для этого, почему бы не просто написать простой? – arshajii
Все, что может предложить Гувава, было бы более сложным в использовании, чем простой цикл 'for', который является коротким и простым в любом случае. –
Есть ли что-то, что вы нам не говорите? В примере, который вы цитируете, смешно ожидать, что внешняя библиотека ничего не знает о вашем классе «Личность» ... объем рефлексии, необходимый для выполнения того, что вы хотите, замедлит его гораздо больше, чем достаточно очевидный ответ ниже. – dcsohl