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새로 작성하여 키를 얻을 수 있습니다 .ArrayListSetMap.keySet
List<String> list = new ArrayList<String>(m.keySet());
메소드 로 리턴 된 값 List에서 새 값을 작성하면 다음 과 같은 값을 얻을 수 있습니다 .ArrayListCollectionMap.values
List<String> list = new ArrayList<String>(m.values());
Listof 키 를 얻은 결과 :
사과 다른 여보세요
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());
