繁体   English   中英

哪种Java数据结构最适合我的应用程序?

[英]Which is the best Java Data structure for my application?

我的问题陈述是,当我获取数据时,我将其存储在数据结构中并保留一个计数器。如果有类似的东西出现,则在数据结构中搜索它(如果已经存在类似的东西),则只需增加计数器并在那里对我的数据没有限制。 数据有时可能会非常大。因此,作为Java的初学者,我想知道哪种数据结构对我的问题会是好的/有效率的。

您需要一个HashMap,将您的“数据”作为键,并将计数器作为值。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/HashMap.html

之所以选择它是一个好选择,是因为它具有O(1)“包含”检查,检索和插入时间。 只要您不需要对数据进行排序,这就是一个很好的选择。

这个未经测试的代码应该可以帮助您入门。 String替换为数据类型。 如果是自定义类,则必须重载hashCode()equals()

HashMap<String, Integer> map = new HashMap<String, Integer>();

...

Integer i = map.get(data);
if(i == null) {
   map.put(data, 1);
} else {
   map.put(data, i + 1);
}

听起来好像您需要使用HashMap<YourClass, Integer>link )。

该值是计数器,这就是为什么它是整数。 当有东西出现时,您检查是否存在具有该钥匙的物品。 如果不是,则将其添加(值为1),否则将其添加为1加上前一个值。

您可以对此进行优化,而不是使用Integer来使您的值成为自定义类,该类包装一个整数并允许递增。 这样,您每次增加时就不必每次都插入到哈希图中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM