sourcecode

TreeMap에서 반복하는 방법

copyscript 2022. 8. 28. 09:52
반응형

TreeMap에서 반복하는 방법

중복 가능성:
지도의 각 엔트리에 대해 반복하려면 어떻게 해야 합니까?

몇 번이고 되풀이하고 싶다TreeMap특정 값을 가진 모든 키에 대해 새 키에 추가하기를 원합니다.TreeMap어떻게 해야 되지?

TreeMap <String,정수 > :

for(Map.Entry<String,Integer> entry : treeMap.entrySet()) {
  String key = entry.getKey();
  Integer value = entry.getValue();

  System.out.println(key + " => " + value);
}

(키 타입과 값 타입은 물론 모든 클래스로 할 수 있습니다)

    //create TreeMap instance
    TreeMap treeMap = new TreeMap();

    //add key value pairs to TreeMap
    treeMap.put("1","One");
    treeMap.put("2","Two");
    treeMap.put("3","Three");

    /*
      get Collection of values contained in TreeMap using
      Collection values()        
    */
    Collection c = treeMap.values();

    //obtain an Iterator for Collection
    Iterator itr = c.iterator();

    //iterate through TreeMap values iterator
    while(itr.hasNext())
      System.out.println(itr.next());

또는 다음과 같이 입력합니다.

   for (Map.Entry<K,V> entry : treeMap.entrySet()) {
        V value = entry.getValue();
        K key = entry.getKey();
   }

또는 다음과 같이 입력합니다.

   // Use iterator to display the keys and associated values
   System.out.println("Map Values Before: ");
   Set keys = map.keySet();
   for (Iterator i = keys.iterator(); i.hasNext();) {
     Integer key = (Integer) i.next();
     String value = (String) map.get(key);
     System.out.println(key + " = " + value);
   }

지도에서 반복하는 일반적인 방법을 알려면 다음과 같습니다.

 private <K, V> void iterateOverMap(Map<K, V> map) {
    for (Map.Entry<K, V> entry : map.entrySet()) {
        System.out.println("key ->" + entry.getKey() + ", value->" + entry.getValue());
    }
    }

Google 컬렉션을 사용하여 K를 키 유형으로 가정합니다.

Maps.filterKeys(treeMap, new Predicate<K>() {
  @Override
  public boolean apply(K key) {
    return false; //return true here if you need the entry to be in your new map
  }});

사용할 수 있습니다.filterEntries대신, 그 값도 필요한 경우.

언급URL : https://stackoverflow.com/questions/1318980/how-to-iterate-over-a-treemap

반응형