일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 배열
- javascript
- Button
- 자바스크립트
- date
- CMD
- windows
- 테이블
- Eclipse
- html
- Maven
- 인텔리제이
- 이탈리아
- vscode
- input
- Visual Studio Code
- js
- json
- IntelliJ
- ArrayList
- 이클립스
- 문자열
- Array
- string
- Java
- table
- list
- 자바
- CSS
- Files
- Today
- Total
어제 오늘 내일
[Java] Map을 배열, List, Set으로 변환하기 본문
지난번에는 ArrayList을 HashMap으로 변환하는 방법을 알아보았습니다.
[Java] ArrayList를 HashMap으로 변환하기
이번에는 Map을 배열로, List로, Set으로 변환하는 방법을 소개합니다.
- Map을 배열로 변환하기
- Map을 List로 변환하기
- Map을 Set으로 변환하기
1. Map을 배열로 변환하기
Map의 value 값을 새로운 배열에 담습니다.
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class MapConvert {
public static void main(String[] args) {
// Map 준비
Map<Integer, String> map = new HashMap<>();
map.put(1, "Apple");
map.put(2, "Banana");
map.put(3, "Orange");
// Map -> 배열
Collection<String> values = map.values();
String[] arr = values.toArray(new String[0]);
// 결과 출력
System.out.println(Arrays.toString(arr)); // [Apple, Banana, Orange]
}
}
Collection<String> values = map.values();
map.values() 메소드를 통해서 Map의 모든 값들을 가진 Collection 객체를 받아옵니다.
String[] arr = values.toArray(new String[0]);
이 Collection 객체의 toArray() 메소드를 사용하여, Collection 객체를 배열로 변환합니다.
이때, 파라미터로는 새로 만들어질 배열이 들어가는데,
배열의 길이는 생성될 배열의 길이로 지정해 주어야 합니다.
즉, 여기서는 map이 3개의 element를 가지고 있으므로 아래와 같이
길이가 3인 새로운 배열을 파라미터로 넘겨줘야 합니다.
values.toArray(new String[3]);
하지만, 길이가 0인 배열을 넘기면 자동으로 변환될 배열의 길이가 정해집니다.
따라서, 위 코드에서는 파라미터로 전달되는 배열의 길이를 0으로 하였습니다.
2. Map을 List로 변환하기
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapConvert {
public static void main(String[] args) {
// Map 준비
Map<Integer, String> map = new HashMap<>();
map.put(1, "Apple");
map.put(2, "Banana");
map.put(3, "Orange");
// Map -> List
Collection<String> values = map.values();
List<String> list = new ArrayList<>(values);
// 결과 출력
System.out.println(list); // [Apple, Banana, Orange]
}
}
List<String> list = new ArrayList<>(values);
ArrayList의 생성자의 파리미터로 map의 value값을 가지는 Collection 객체를 넘겨주어서
Map을 List로 변환하였습니다.
3. Map을 Set으로 변환하기
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class MapConvert {
public static void main(String[] args) {
// Map 준비
Map<Integer, String> map = new HashMap<>();
map.put(1, "Apple");
map.put(2, "Banana");
map.put(3, "Orange");
// Map -> Set
Collection<String> values = map.values();
Set<String> set = new HashSet<>(values);
// 결과 출력
System.out.println(set); // [Apple, Banana, Orange]
}
}
Set<String> set = new HashSet<>(values);
List와 마찬가지로,
Map의 value값을 가지는 Collection 객체를
HashSet의 생성자의 파라미터로 넘겨주어서,
Map 객체의 value 데이터로 Set 객체를 생성하였습니다.
'IT > Java' 카테고리의 다른 글
[Java] 문자열에서 마지막 콤마 제거하기 (0) | 2021.05.20 |
---|---|
[Java] 2개의 HashMap 합치기 (putAll, merge) (0) | 2021.05.20 |
[Java] ArrayList를 HashMap으로 변환하기 (0) | 2021.05.19 |
[Java] HashMap에서 최대값/최소값 key, value 찾기 (1) | 2021.05.19 |
[Java] HashMap에서 value로 key 찾기 (2) | 2021.05.18 |