[Java8] Map을 Set으로 변환 (Map to Set)

✍️ Map to Set

1. Simple Loop

Map<Integer, String> map = new HashMap<>();
map.put(1, "이말년");
map.put(2, "침착맨");
map.put(3, "주호민");

Set<Integer> ids = new HashSet<>();
for (int id : map.keySet()) {
    ids.add(id);
}

Set<String> names = new HashSet<>();
for (String name : map.values()) {
    names.add(name);
}

System.out.println(ids);
System.out.println(names);

// [1, 2, 3]
// [침착맨, 이말년, 주호민]

 

2. Constructor

Map<Integer, String> map = new HashMap<>();
map.put(1, "이말년");
map.put(2, "침착맨");
map.put(3, "주호민");

Set<Integer> ids = new HashSet<>(map.keySet());
Set<String> names = new HashSet<>(map.values());

System.out.println(ids);
System.out.println(names);
// [1, 2, 3]
// [침착맨, 이말년, 주호민]

 

3. Java 8 Stream API

Key or Value to Set

Map<Integer, String> map = new HashMap<>();
map.put(1, "이말년");
map.put(2, "침착맨");
map.put(3, "주호민");

Set<Integer> ids = map.keySet().stream()
        .collect(Collectors.toSet());
Set<String> names = map.values().stream()
        .collect(Collectors.toSet());

System.out.println(ids);
System.out.println(names);
// [1, 2, 3]
// [침착맨, 이말년, 주호민]

 

Key and Value to Member

@AllArgsConstructor
@ToString
public class Member {

    private int id;
    private String name;
}
Map<Integer, String> map = new HashMap<>();
map.put(1, "이말년");
map.put(2, "침착맨");
map.put(3, "주호민");

Set<Member> memberSet = map.entrySet().stream()
        .map(e -> new Member(e.getKey(), e.getValue()))
        .collect(Collectors.toSet());

System.out.println(memberSet);

// [Member(id=2, name=침착맨), Member(id=3, name=주호민), Member(id=1, name=이말년)]

 

🌱  관련

[Java8] List를 Map으로 변환 (List to Map)

[Java8] List를 Set으로 변환 (List to Set)

[Java8] Set을 List로 변환 (Set to List)

[Java8] Set을 Map으로 변환 (Set to Map)

[Java8] Map을 List로 변환 (Map to List)

[Java8] Map을 Set으로 변환 (Map to Set)