2012-04-25 62 views
2

我想建議哪一個更好根據性能?字節數組和哈希映射表的字節數組之間的性能差異

列表<的byte [] >

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

對我來說,關鍵並不重要。我將僅在對象中存儲2的列表大小。第一個代表一個常數,另一個代表另一個常數。

除了兩個還有其他更好的解決方法也請給我建議。

在此先感謝。

+1

*「也就是存在的解決方案比兩人還PLE其他什麼更好的辦法ase建議我。「* - 您還沒有正確解釋問題... – 2012-04-25 14:13:59

回答

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; 

} 
0
  1. 如果您沒有鍵值關係,請不要使用map。
  2. 不要混淆泛型和數組(例如List<byte[]>)。

如果兩個不相關,使用兩個單獨的byte[]變量,如果是這樣,使用byte[][](假設你不能做List<List<Byte>>)。

+0

無法理解不要將泛型與數組混合使用。請簡單解釋一下 – Aswini 2012-04-25 14:12:49

5

如何將列表與地圖進行比較?他們是完全不同的東西。另外,這取決於您執行的操作。

最後,您將具體實現(hashmap)與抽象接口(list)進行比較。這是沒有意義的。

如果您不需要密鑰,則不需要地圖。至於不同列表實現的性能,它們記錄在javadoc中。

0

列表:
名單更快垂直工作在以下情況:

  1. 在beggining和結束
  2. 刪除在開始和結束時
    添加新對象列表在下列情況下垂直運行速度較慢:
  3. 搜索速度很慢時,它必須垂直加載,因爲 o對象鏈接列表明智地鏈接。
  4. 在中間添加和刪除。

的HashMap: 是地圖,並且可以通過按鍵垂直和水平搜索:

  1. 迭代器用於搜索,並且在加入慢(檢查唯一 關鍵,如果在這裏也適用)
  2. 刪除快速
  3. 搜索速度快