byte 陣列作為map的key的問題

2021-08-30 07:14:59 字數 337 閱讀 1043

今天coding的時候,用到了byte陣列作為hashmap的key值,測試的時候,發現不能夠根據相同的byte,得到相應的value值,google了一下,發現,byte陣列作為key值,只是陣列的位址的引用的hashcode,不能夠根據byte陣列的內容來,建立相應的hashcode,也就是所謂的索引key。所以,如果想用byte陣列來作為map的key值的話,有三種方法:

1.將byte,先轉化為string,

2.將採用list

3.將byte自己包裝,使用byte陣列的內容來重寫hashcode和euquals方法,

write up just for my own reference.

C 類或結構作為map的key值

只有過載 的類或者結構才能作為map的key值。string可以作為key值是因為string過載了 如果不過載 會提示如下錯誤 error c2676 二進位制 const c 不定義該運算子或到預定義運算子可接收的型別的轉換 include include using namespace std...

map中使用自定義類指標作為key

標籤 iterator less delete classc 2012 05 11 11 58 1411人閱讀收藏 舉報 vc mfc wtl c 65 先上 pragma once 想用類作為key,必須過載 運算子 或者提供 想用指標作為key,也是可以的,不過要自己提供仿函式 class cb...

python tips 作為dict的key的類

python的dict由hash實現,解決hash衝突的方法是二次探查法。hash值相同的元素會形成鍊錶。所以dict在查詢key時,首先獲取hash值,直接得到鍊錶的表頭 而後在鍊錶中查詢等於key的值。所以要使乙個物件的例項能夠作為dict的key值,一般需要實現 hash 和 eq 兩個方法。...