Что эквивалентно .NET SortedDictionary в Java? - PullRequest
10 голосов
/ 07 января 2011

Если в .NET есть объект SortedDictionary ... что это такое в Java, пожалуйста? Мне также нужно иметь возможность получить Enumeration (элементов) в коде Java ... так что я могу просто перебрать все ключи.

Я думаю, что это TreeMap ? Но я не думаю, что у этого есть Enumeration, который выставлен?

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 07 января 2011

TreeMap будет правильным выбором. Что касается коллекции всех ключей (или значений), любые Map выставляют keySet() и values().

РЕДАКТИРОВАТЬ (чтобы ответить на ваш вопрос с помощью тегов кода). Если у вас есть Map<String, Object>:

for (String key : map.keySet()) {
     System.out.println(key); // prints the key
     System.out.println( map.get(key) ); // prints the value
}

Вы также можете использовать entrySet() вместо keySet() или values(), чтобы перебирать пары ключ-> значение.

5 голосов
/ 07 января 2011

TreeMap, вероятно, самая близкая вещь, которую вы собираетесь найти.

Вы можете перебирать ключи, вызывая TreeMap.keySet(); и перебирая возвращаемый набор:

// assume a TreeMap<String, String> called treeMap
for(String key : treeMap.keySet())
{
    string value = treeMap[key];
}

Это будет эквивалентно:

// assume a SortedDictionary called sortedDictionary
foreach(var key in sortedDictionary.Keys)
{
    var value = sortedDictionary[key];
}

Вы также можете попробовать следующее:

// assume TreeMap<String, String> called treeMap
for (Map.Entry<String, String> entry : treeMap.entrySet())
{
    String key = entry.getKey();
    String value = entry.getValue();
}

Что эквивалентно следующему коду .NET:

// assume SortedDictionary<string, string> called sortedDictionary
foreach(KeyValuePair<string, string> kvp in sortedDictionary)
{
    var key = kvp.Key;
    var value = kvp.Value;
}
0 голосов
/ 07 января 2011

Что вам нужно, это entrySet () метод SortedMap (TreeMap).

...