Java에서 목록으로 맵을 변환하는 방법
를 변환하는 가장 좋은 방법은 무엇입니까?Map<key,value>
에 대해서List<value>
모든 값을 반복하여 목록에 삽입하는 것이 아니면 제가 간과하고 있는 것입니까?
List<Value> list = new ArrayList<Value>(map.values());
전제 조건:
Map<Key,Value> map;
여기서의 문제는 2개의 값(키와 값)이 있는 반면,는 1개의 값(요소)밖에 없다는 것입니다.
따라서 할 수 있는 최선의 방법은 다음 중 하나를 얻는 것입니다.List
(키/값 쌍에 고정할 래퍼를 만들지 않는 한)
예를 들어,Map
:
Map<String, String> m = new HashMap<String, String>();
m.put("Hello", "World");
m.put("Apple", "3.14");
m.put("Another", "Element");
키(Key)는List
는 메서드에 의해 반환된에서 새로운 것을 작성함으로써 얻을 수 있습니다.
List<String> list = new ArrayList<String>(m.keySet());
한편, a로서의 가치는List
새로운 것을 만드는 것을 얻을 수 있다ArrayList
다음 메서드에 의해 반환된에서:
List<String> list = new ArrayList<String>(m.values());
취득한 결과List
키:
사과다른안녕
취득한 결과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()
a를 반환한다.Collection
지도의 모든 값을 포함합니다.map.keySet()
a를 반환한다.Set
지도의 모든 키가 들어 있습니다.
내 생각에 너는 그 안에 포함된 값을 변환하고 싶은 것 같아.Map
에 대해서list
? 가장 쉬운 것은 전화하는 전화입니다.values()
의 방법Map
인터페이스입니다.이렇게 하면Collection
에 포함되어 있는 가치 있는 오브젝트Map
.
이 점에 주의:Collection
에 의해 백업됩니다.Map
오브젝트 및 에 대한 모든 것Map
오브젝트가 여기에 반영됩니다.따라서 다른 복사본을 원하는 경우Map
오브젝트, 신규 작성만 하면 됩니다.List
와 같은 물체ArrayList
값 전달Collection
이하와 같습니다.
ArrayList<String> list = new ArrayList<String>(map.values());
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("java", 20);
map.put("C++", 45);
Set <Entry<String, Integer>> set = map.entrySet();
List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(set);
키와 값의 쌍 모두를 리스트에 표시할 수 있습니다.또한 맵을 사용하여 키와 값을 얻을 수 있습니다.목록 위에 반복하여 입력.
이렇게 하면 돼
List<Value> list = new ArrayList<Value>(map.values());
결과의 값을 확인하는 경우List<Value>
입력의 키 입력에 있습니다.Map<Key, Value>
, 「통과」할 필요가 있습니다.SortedMap
어떻게든.
둘 중 하나는 콘크리트로 시작한다.SortedMap
(예:구현TreeMap
)또는 당신의 입력을 삽입하다Map
으로SortedMap
그것을 로 변환하기 전에List
. 예를 들어:
Map<Key,Value> map;
List<Value> list = new ArrayList<Value>( new TreeMap<Key Value>( map ));
그렇지 않으면 현지인이 주문하는 것이 무엇이든Map
실장에서는, 통상적인 키 순서와는 다른 것이 되는 경우가 많습니다(실행해 주세요).Hashtable
또는ConcurrentHashMap
, 다양한 cm이다.
// you can use this
List<Value> list = new ArrayList<Value>(map.values());
// or you may use
List<Value> list = new ArrayList<Value>();
for (Map.Entry<String, String> entry : map.entrySet())
{
list.add(entry.getValue());
}
Map<String, String > map = new HapshMap<String, String>;
map.add("one","java");
map.add("two", "spring");
Set<Entry<String, String>> set = map.entrySet();
List<Entry<String, String>> list = new ArrayList<Entry<String, String>> (set);
for(Entry<String, String> entry : list) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
여기 제네릭 메서드에 지도에서 값을 가져옵니다.
public static <T> List<T> ValueListFromMap(HashMap<String, T> map) {
List<T> thingList = new ArrayList<>();
for (Map.Entry<String, T> entry : map.entrySet()) {
thingList.add(entry.getValue());
}
return thingList;
}
HashMap<Integer, List<String>> map = new HashMap<>();
List<String> list = new ArrayList<String>();
list.add("Java");
list.add("Primefaces");
list.add("JSF");
map.put(1,list);
if(map != null){
return new ArrayList<String>((Collection<? extends String>) map.values());
}
값을 변경할 수 없는 복사본이 필요한 경우:
List<Value> list = List.copyOf(map.values())
언급URL : https://stackoverflow.com/questions/1026723/how-to-convert-a-map-to-list-in-java
'programing' 카테고리의 다른 글
Windows에서 Python script as a Service를 실행하는 방법은 무엇입니까? (0) | 2022.09.25 |
---|---|
Jackson & message - Json Mapping Exception - START_ARray 토큰이 아닌 것으로 역직렬화할 수 없음 (0) | 2022.09.25 |
vue.js axios POST에서 Laravel로 JSON을 입수하려면 어떻게 해야 합니까? (0) | 2022.08.31 |
DESTDIR 및 제조원 접두사 (0) | 2022.08.31 |
Java로 플러그인 시스템을 구축하는 가장 좋은 방법 (0) | 2022.08.31 |