[英]What will store a Key-Value list in Java or an alternate of C# IDictionary in Java?
我是java开发的新手,我来自C#.net,正在开发android应用程序。
我正在寻找在Java中使用的Key-Value列表,与C#中的IDictionary相同。
谢谢
例如,使用Map<K, V>
接口和HashMap<K, V>
类 。 或者,请参阅Map<K, V>
接口说明中的“所有已知子接口”部分以获取更多实现。
http://download.oracle.com/javase/6/docs/api/java/util/Map.html
您正在寻找的界面是Map<K, V>
。
对于类似于C#的Dictionary
尝试HashMap<K, V>
我通常更喜欢java.util.TreeMap到HashMap。 它不是那么快,但您不必担心散列算法或设置大小。 更重要的是,它内存友好,因为它使用小块内存而不是分配大量数组。 如果您可以严密控制地图的创建和处理,请事先知道它们将保留多少数据,并且知道在程序运行时条目数量不会发生显着变化,请使用Hashmap。 否则使用Treemap。
另一个非常酷的Map,我还没有遇到过像.NET这样的版本,它是java.util.concurrent.ConcurrentSkipListMap 。 这对于多线程情况非常有用。 它完全是线程安全的,并且是非阻塞的。
(我发现这个问题的同时看一个被关闭的副本。我认为这两个问题都可以使用提到HashMaps之外的其他问题的答案,好像HashMaps用于大多数用途,类似于C#字典。)
您正在寻找C#中通用IDictionary的替代方法,它采用(键,值)对。
在Java中,有一个Dictionary类,它是任何类的父类,它接受(键,值)对。
HashTable (扩展词典)将满足您的需求。 它执行复制,删除,添加等操作,检查项目是否存在等。 但是,虽然IDictionary支持C#中的foreach循环,但要在Java中循环HashTable,您将需要一个Iterator。
HashTables的另一个优点是它是同步的,因此您不必担心并发性。
但是,如果您正在寻找异步实现,则应使用HashMap 。 HashMap也需要Iterator遍历它。
毫无疑问,您还需要了解Iterator如何在Java中工作。
HashTables: http : //download.oracle.com/javase/1.4.2/docs/api/java/util/Hashtable.html
HashMaps: http : //download.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html
迭代器: http : //download.oracle.com/javase/1.4.2/docs/api/java/util/Iterator.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.