본문 바로가기

Programming!

리스트에서 Entity의 id를 Key로 갖는 Map으로 전환


public class Employee {

..

private Integer age;

private String name;


List<Employee> employees = Lists.ne...;

..

..


JSDK 7 Guava


위의 리스트에서 Entity의 id를 Key로 갖는 Map으로 전환 하고 싶다면 guava에서 다음과 같이 하자.


Map<Integer, Employee> employeeMap = Maps.uniqueIndex(employees, new Function< Employee, Integer>() {

public Integer apply(Employee employee) {

return employee.getAge;

}

});


JSDK 8 Lamda

// 중복의 경우 

Map<Integer, List<Employee>> employeeMap = employees.stream().collect(Collectors.groupingBy(Employee::getAge));

// Unique 의 경우

Map<Integer, Employee> employeeMap2 = employees.stream().collect(Collectors.toMap(Employee::getAge, Function.identity()));