source

Java에서 맵을 목록으로 변환하려면 어떻게 해야 합니까?

nicesource 2023. 4. 9. 21:42
반응형

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>입력의 키 입력에 있습니다.Map<Key, Value>, 「통과」할 필요가 있습니다.SortedMap어떻게든.

콘크리트로 시작하거나SortedMap구현(예:TreeMap) 또는 입력 내용을 삽입합니다.MapSortedMap그것을 로 변환하기 전에List예:

Map<Key,Value> map;
List<Value> list = new ArrayList<Value>( new TreeMap<Key Value>( map ));

그렇지 않으면 현지인이 주문하는 것이 무엇이든Map실장에서는, 통상적인 키 순서와는 다른 것이 되는 경우가 많습니다(실행해 주세요).Hashtable또는ConcurrentHashMap, 다양성).

// 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;
}
public List<Object> convertMapToList(Map<Object, Object> map){
return new ArrayList<>(map.values());
}

값을 변경할 수 없는 복사본이 필요한 경우:

List<Value> list = List.copyOf(map.values())

언급URL : https://stackoverflow.com/questions/1026723/how-do-i-convert-a-map-to-list-in-java

반응형