본문 바로가기

Programming!

List의 특정 키를 기준으로 Map으로 변환 - 2 : java 7/8


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 Lambda


// 중복의 경우 

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()));