【问题标题】:ArrayLists and HashMaps are recommended to use in Java?ArrayLists 和 HashMaps 推荐在 Java 中使用?
【发布时间】:2014-02-13 15:58:25
【问题描述】:

我来自 Perl,其中哈希和数组使用起来很舒服,因为它们非常动态并且在后台做很多通常会惹恼程序员的事情。

与此类似,我开始使用 hashmaps 和 ArrayLists,因为它们使编程工作变得更容易和更快。但性能如何?是否建议将这些类型的数据用于大型项目,或者我应该只使用字符串和数组将自己限制在 Java 的核心?

感谢所有回答:-)))

【问题讨论】:

  • 最好使用具有数据类型的类,不是出于性能原因,而是为了清晰和可维护性。顺便说一句,对象要快得多,并且使用的内存要少得多。
  • 是和不是。我创建了PerlArrayPerlHash 来做我喜欢用Perl 数组和哈希做的事情。如果我要使用 Java 数组,我几乎会在 ArrayList 中管理它们。但是哈希查找不会像 struct 那样快,其中偏移量可以直接存储在字节码中。我并不总是使用 Java 编程,但当我这样做时,我使用对象来存储数据,使用容器来存储关系和算法。

标签: java performance perl arraylist


【解决方案1】:

如果您有不变的数据,您将写入一次(或几次)并读取多次,则数组可能(非常略微)比ArrayList 快。数组消耗的内存也可能比ArrayList 少。然而,ArrayList 尤其是一个经常使用的类,因此能够使用它是很有用的(以及更普遍地与实现List 接口的其他类一起使用),并且在它下面,元素存储在一个数组,因此访问不应该真的变慢。

HashMaps 实现了一个基于散列的映射。它们通常是O(1) 访问数据结构和实现,因此确实值得推荐。作为实现Map 接口的类,它们也是一种将一个对象映射到另一个对象的有用方法,这是一个常见的问题。

大多数Collections 类(和接口)设计良好且易于使用。

【讨论】:

    【解决方案2】:

    HashMapArrayList等是核心Java库的一部分,推荐使用。

    不过,您也应该调查其他 Collections,因为根据您的操作,其他一些选项可能对您更有利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 1970-01-01
      • 2016-02-16
      相关资源
      最近更新 更多