source

HashMap - 첫 번째 키 값 가져오기

goodcode 2022. 8. 18. 23:30
반응형

HashMap - 첫 번째 키 값 가져오기

HashMap에 포함된 값은 다음과 같습니다.

statusName {Active=33, Renewals Completed=3, Application=15}

첫 번째 키를 얻기 위한 Java 코드(즉, 활성)

Object myKey = statusName.keySet().toArray()[0];

첫 번째 키 "값"(예: 33)을 수집하려면 어떻게 해야 합니까? "키"와 "값"을 모두 별도의 변수에 저장해야 합니다.

다음과 같이 시험해 보십시오.

 Map<String,String> map = new HashMap<>();
 Map.Entry<String,String> entry = map.entrySet().iterator().next();
 String key = entry.getKey();
 String value = entry.getValue();

명,,HashMap는 삽입 순서를 보증하지 않습니다. 사용하다LinkedHashMap질서를 유지하기 위해서요

예:

 Map<String,String> map = new LinkedHashMap<>();
 map.put("Active","33");
 map.put("Renewals Completed","3");
 map.put("Application","15");
 Map.Entry<String,String> entry = map.entrySet().iterator().next();
 String key= entry.getKey();
 String value=entry.getValue();
 System.out.println(key);
 System.out.println(value);

출력:

 Active
 33

업데이트: 첫 번째 키를 가져오는 중Java 8★★★★★★★★★★★★★★★★★★★★★★★★★★

Optional<String> firstKey = map.keySet().stream().findFirst();
if (firstKey.isPresent()) {
    String key = firstKey.get();
}

"첫 번째" 값을 얻으려면:

map.values().toArray()[0]

"첫 번째" 키의 값을 얻으려면:

map.get(map.keySet().toArray()[0])

메모: 위의 코드가 테스트되어 동작합니다.

HashMap 엔트리의 순서가 정해져 있지 않기 때문에 "first"라고 말합니다.

단, LinkedHashMap은 삽입된 순서대로 엔트리를 반복합니다.삽입 순서가 중요한 경우 맵 구현에 사용할 수 있습니다.

Java 8의 방법,

String firstKey = map.keySet().stream().findFirst().get();

첫 번째 엔트리를 모두 취득하기 위해 다음을 시도할 수도 있습니다.

Map.Entry<String, String> entry = map.entrySet().stream().findFirst().get();
String key = entry.getKey();
String value = entry.getValue();

다음은 첫 번째 엔트리의 키를 얻는 방법을 보여 줍니다.

String key = map.entrySet().stream().map(Map.Entry::getKey).findFirst().get();
// or better
String key = map.keySet().stream().findFirst().get();

다음은 첫 번째 엔트리의 값을 얻는 방법을 보여 줍니다.

String value = map.entrySet().stream().map(Map.Entry::getValue).findFirst().get();
// or better
String value = map.values().stream().findFirst().get();

또한 지도의 두 번째 항목(세 번째 항목 등)을 가져오고 싶은 경우 이 맵에 적어도 두 개의 항목이 포함되어 있음을 확인한 경우 다음을 사용할 수 있습니다.

Map.Entry<String, String> entry = map.entrySet().stream().skip(1).findFirst().get();
String key = map.keySet().stream().skip(1).findFirst().get();
String value = map.values().stream().skip(1).findFirst().get();

첫 번째 주요 "가치"를 수집하는 방법(예: 33)

「」를 사용해 .youMap.get(keyYouHave)를 알 수 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

"Key"와 "Value"를 모두 개별 변수에 저장하려고 합니다.

예, 변수에 할당할 수 있습니다.

잠깐만요......아직 끝난 게 아니에요.

만약 당신이 (비즈니스 로직이) 삽입과 검색의 순서에 의존한다면, 당신은 이상한 결과를 보게 될 것이다.맵은 순서가 정해져 있지 않습니다.순서는 저장되지 않습니다.당신은 그 사실을 알아두세요.주문을 보존하기 위해 다른 방법을 사용하세요.아마

는, 「」, 「」의 .HashMap간단히 말하면, 어떤 순서로든 요소들이 있다.HashMap.Collection(취향 및 선별기 컬렉션에 대한 자세한 내용은 이 게시물을 참조하십시오).

포스트로 돌아가면 첫 번째 요소 키를 로드하여 작업의 절반을 이미 수행했습니다.

Object myKey = statusName.keySet().toArray()[0];

전화하세요.map.get(key)값을 : "Discription"을 클릭합니다.

Object myValue = statusName.get(myKey);

Kotlin 응답

먼저 키를 얻은 후 키의 값을 얻습니다.Kotlin에는 "first()" 기능이 있습니다.

val list = HashMap<String, String>() // Dummy HashMap.

val keyFirstElement = list.keys.first() // Get key.

val valueOfElement = list.getValue(keyFirstElement) // Get Value.

일반적으로 지도에서는 삽입 순서가 존중되지 않습니다.다음을 시도해 보십시오.

    /**
     * Get the first element of a map. A map doesn't guarantee the insertion order
     * @param map
     * @param <E>
     * @param <K>
     * @return
     */
    public static <E,K> K getFirstKeyValue(Map<E,K> map){
        K value = null;
        if(map != null && map.size() > 0){
            Map.Entry<E,K> entry =  map.entrySet().iterator().next();
            if(entry != null)
                value = entry.getValue();
        }
        return  value;
    }

나는 이것을 단지 내가 확신 할 수 있을 때 뿐입니다.map.size() == 1.

와미의 답변을 개선하다.부터findFirst()반환하다Optional값이 있는지 확인하는 것이 좋습니다.

 var optional = pair.keySet().stream().findFirst();

 if (!optional.isPresent()) {
    return;
 }

 var key = optional.get();

또 어떤 사람들은 첫 번째 키를 찾는다고 평했다.HashSet신뢰할 수 없습니다.하지만 가끔 우리는HashMap즉, 각 맵에는 키와 값이 하나씩 있습니다.이러한 경우 이러한 쌍의 첫 번째 키를 빠르게 찾는 것이 편리합니다.

또, 이것을 실시하기 위한 좋은 방법:

Map<Integer,JsonObject> requestOutput = getRequestOutput(client,post);
int statusCode = requestOutput.keySet().stream().findFirst().orElseThrow(() -> new RuntimeException("Empty"));

아래도 시도해 볼 수 있습니다.

Map.Entry<String, Integer> entry = myMap.firstEntry();
System.out.println("First Value = " + entry);

언급URL : https://stackoverflow.com/questions/26230225/hashmap-getting-first-key-value

반응형