Map<key,value>
를 a 로 변환하는 가장 좋은 방법은 무엇입니까 List<value>
? 모든 값을 반복하여 목록에 삽입하거나 무언가를 간과합니까?
답변
List<Value> list = new ArrayList<Value>(map.values());
가정 :
Map<Key,Value> map;
답변
여기서 문제 Map
는 두 개의 값 (키와 값) List
이 있고 하나의 값 (요소) 만 있다는 것입니다.
따라서 수행 할 수있는 최선 List
의 방법은 키 또는 값을 얻는 것 입니다. (키 / 값 쌍을 유지하기 위해 랩퍼를 만들지 않는 한).
우리에게 Map
:
Map<String, String> m = new HashMap<String, String>();
m.put("Hello", "World");
m.put("Apple", "3.14");
m.put("Another", "Element");
메소드 로 리턴 된 키를 List
새로 작성하여 키를 얻을 수 있습니다 .ArrayList
Set
Map.keySet
List<String> list = new ArrayList<String>(m.keySet());
메소드 로 리턴 된 값 List
에서 새 값을 작성하면 다음 과 같은 값을 얻을 수 있습니다 .ArrayList
Collection
Map.values
List<String> list = new ArrayList<String>(m.values());
List
of 키 를 얻은 결과 :
사과 다른 여보세요
List
값 을 얻은 결과 :
3.14 요소 세계
답변
Java 8 Streams API 사용
List<Value> values = map.values().stream().collect(Collectors.toList());
답변
map.entrySet()
Map.Entry
키와 값을 모두 포함하는 객체 모음을 제공합니다 . 그런 다음 이것을 원하는 컬렉션 개체로 변환 할 수 있습니다 (예 : new ArrayList(map.entrySet())
;
답변
무엇의 목록?
가정 map
은 당신의 인스턴스Map
map.values()
를 반환합니다Collection
모든지도 값을 포함 합니다.map.keySet()
Set
지도의 모든 키 가 포함 된를 반환 합니다.
답변
에 포함 된 값 Map
을 list
? 가장 쉬운 values()
방법은 Map
인터페이스 의 메소드 를 호출하는 것입니다 . 이것은에 Collection
포함 된 값 객체를 반환합니다 .Map
.
이것은 객체에 Collection
의해 뒷받침되며 Map
객체에 대한 모든 변경 사항 Map
은 여기에 반영됩니다. 따라서 Map
객체에 바인딩되지 않은 별도의 사본을 원하면 아래 List
처럼 ArrayList
값 Collection
을 전달하는 것과 같이 새 객체 를 만들면 됩니다.
ArrayList<String> list = new ArrayList<String>(map.values());
답변
당신은 이렇게 할 수 있습니다
List<Value> list = new ArrayList<Value>(map.values());
