Development Tip

해시 맵에서 키 목록을 반환하는 방법은 무엇입니까?

yourdevel 2021. 1. 9. 11:00
반응형

해시 맵에서 키 목록을 반환하는 방법은 무엇입니까?


저는 현재 동사를 스페인어로 활용하는 프로그램을 만들려고합니다. 키와 객체 Verb의 인스턴스화를 포함하는 해시 테이블을 만들었습니다. 키는 동사의 부정사 형태 (예 : "hablar")가있는 문자열입니다. 이것은 지금까지 해시 맵에 대한 코드입니다.

public class VerbHashMap {

    HashMap<String, Verb> verbHashMap;

    public VerbHashMap(){
        verbHashMap = new HashMap();
    }   
}

HashMap의 각 동사 키는 동사의 부정사 형태를 기반으로합니다. 예를 들어, 문자열 "hablar"는 스페인어 동사의 키입니다. Verb 클래스에는 동사의 부정사 형태를 포함하는 문자열을 반환하는 getInfinitive ()라는 메서드가 있습니다.

public boolean addVerb(Verb verb){
    if(verbHashMap.containsValue(verb.getInfinitive()){
        return false;
    }
    else{
        verbHashMap.put(verb.getInfinitive(), verb);
        return true;
    }
}

질문은 해시 맵의 모든 동사 목록을 알파벳 순서로 반환하는 메서드를 만드는 가장 효율적인 방법은 무엇입니까? 메서드가 해시 맵의 모든 객체 키를 포함하는 ArrayList를 반환해야합니까? 아니면 이것에 대해 훨씬 더 효율적인 방법이 있습니까?


keySet()메서드를 사용하여의 모든 키가 포함 된 집합을 반환합니다 Map.

지도를 순서대로 유지하려면 TreeMap.


를 사용하면 map.keySet()키 세트를 얻을 수 있습니다. 그런 다음이 세트를 다음으로 변환하십시오 List.

List<String> l = new ArrayList<String>(map.keySet());

그런 다음 l.get(int)방법을 사용 하여 키에 액세스하십시오.

PS :-소스-Set <String>을 List <String>으로 변환하는 가장 간결한 방법


map.keySet()

모든 키를 반환합니다. 키를 정렬하려면 TreeMap을 고려할 수 있습니다.


 for(int i=0;i<ytFiles.size();i++){

                    int key = ytFiles.keyAt(i);
                    Log.e("key", String.valueOf(key));
                    String format = ytFiles.get(key).getFormat().toString();
                    String url = ytFiles.get(key).getUrl();
                    Log.e("url",url);
                }

you can get key by method keyat and you have to pass the index then it will return key at that particular index. this loop will get all the key

ReferenceURL : https://stackoverflow.com/questions/6589744/how-to-return-a-list-of-keys-from-a-hash-map

반응형