字节数组列表与具有字节数组的hashmap之间的性能差异

时间:2012-04-25 14:08:20

标签: java

我想根据性能建议哪一个更好?

列表与LT;字节[]>

的HashMap<字符串,字节[]>

对我而言,关键并不重要。我将仅在对象中存储2的列表大小。第一个代表一个常数,另一个代表另一个常量。

除了两个以外,还有更好的解决方法,请建议我。

先谢谢。

4 个答案:

答案 0 :(得分:5)

如何将列表与地图进行比较?他们是完全不同的东西。此外,它取决于您执行的操作。

最后,您将具体实现(hashmap)与抽象接口(list)进行比较。这毫无意义。

如果您不需要钥匙,则不需要地图。至于不同列表实现的性能,它们记录在javadoc中。

答案 1 :(得分:0)

  1. 如果您没有键值关系,请不要使用map。
  2. 不要将泛型与数组混合使用(例如List<byte[]>)。
  3. 如果两者不相关,请使用两个单独的byte[]变量,如果是,则使用byte[][](假设您无法执行List<List<Byte>>)。

答案 2 :(得分:0)

为什么不创建一个pojo类来保存值?

Class ConstantHolder {

  private final byte[] constant1;
  private final byte[] constant2;

  public Holder(byte[] constant1, byte[] constant2) {
    this.constant1 = constant1;
    this.constant2 = constant2;
  }

  getters for constants;

}

答案 3 :(得分:0)

列表:
在以下情况下,列表可以更快地垂直工作:

  1. 在开始和结束处添加新对象
  2. 在开头和结尾删除
    在以下情况下,列表的工作速度较慢:
  3. 当它必须纵向垂直时,搜索是某种缓慢的因为 对象链接列表明智。
  4. 在中间添加和删除。
  5. HashMap中: 是地图,可以通过键垂直和水平搜索:

    1. 迭代器用于搜索并且添加缓慢(检查唯一 密钥如果适用于此处)
    2. 删除很快
    3. 搜索很快