Java 中的 .NET SortedDictionary 等价物是啥?
Posted
技术标签:
【中文标题】Java 中的 .NET SortedDictionary 等价物是啥?【英文标题】:What's the equivalent to a .NET SortedDictionary, in Java?Java 中的 .NET SortedDictionary 等价物是什么? 【发布时间】:2011-06-05 00:31:14 【问题描述】:如果 .NET 有一个 SortedDictionary 对象……请问在 Java 中这是什么?我还需要能够在 Java 代码中检索 Enumeration
(元素).. 这样我就可以遍历所有键。
我认为这是 TreeMap ?但我不认为有一个暴露的Enumeration
?
有什么想法吗?
【问题讨论】:
如何遍历 TreeMap ***.com/questions/1318980/… 【参考方案1】: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()
来遍历键-> 值对。
【讨论】:
【参考方案2】:TreeMap
可能是您能找到的最接近的东西。
您可以通过调用 TreeMap.keySet();
并遍历返回的 Set 来遍历键:
// 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;
【讨论】:
treeMap[key] 是一种语法糖,您在当前版本的 java 中找不到它。你应该坚持使用 treeMap.get(key)【参考方案3】:你需要的是SortedMap(TreeMap)的entrySet()方法。
【讨论】:
以上是关于Java 中的 .NET SortedDictionary 等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Android AsyncTask 中的 java.net.SocketException
如何解决 java.net.SocketException:使用 selenium 的 java 中的连接重置异常?