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
'source' 카테고리의 다른 글
DUBLE_MAX 입수방법 (0) | 2022.08.19 |
---|---|
필드 등급(vue js) 값을 전달하려면 어떻게 해야 합니까? (0) | 2022.08.19 |
루트 인스턴스를 인스턴스화하지 않고 vue 구성 요소를 사용하는 방법은 무엇입니까? (0) | 2022.08.18 |
Vue.js: Vuex 액션에서 실현되지 않은 약속 (0) | 2022.08.18 |
Java는 여러 줄 문자열을 지원합니까? (0) | 2022.08.18 |