プログラム内にデータが取り込まれている Java HashHap があります。何らかの理由で、マップ内の entrySet には期待どおりの内容が含まれていますが、内部の Entry テーブルを見ると、値がありません。その値が欠落しているため、null が取得され、すべてが壊れます。思ったほど HashMaps を理解していないのかもしれませんが、テーブルには entrySet のすべてのエントリを含める必要がありますか? ありがとう。
entrySet とテーブルについて話すとき、実際にはデバッグ時の HashMap の内部について話しています。これが私の「entrySet」の外観です。
[IS_DELETED=0, COLLECTION_SET_NAME=D-EIUCFOE-SET, MAP_ID=Ic65fd5ffb7c311e09fc6842b2ba7e81a, PRODUCT_ID=1, USER_ID=U0158703, WM_DIFFVER=DiffBase, DISTRICT_CODE=TX_N_DIS, WM_CODE=NC, MODIFIED_DATE=2012-09-04 10:13:08.973]
そして、ここに私のテーブルがどのように見えるかがあります:
[IS_DELETED=0, COLLECTION_SET_NAME=D-EIUCFOE-SET, null, null, PRODUCT_ID=1, null, null, null, WM_DIFFVER=DiffBase, null, DISTRICT_CODE=TX_N_DIS, WM_CODE=NC, MODIFIED_DATE=2012-09-04 10:13:08.973, null, null, null]
したがって、この HashMap が作成された後でコードが MAP_ID を検索すると、null が表示されて爆発します。
table HashMap$Entry<K,V>[16] (id=248)
[0] HashMap$Entry<K,V> (id=270)
hash -1013369904
key "IS_DELETED" (id=883)
next null
value BigDecimal (id=884)
[1] HashMap$Entry<K,V> (id=271)
hash 449814449
key "COLLECTION_SET_NAME" (id=896)
next HashMap$Entry<K,V> (id=898)
value "D-EIUCFOE-SET" (id=899)
[2] null
[3] null
[4] HashMap$Entry<K,V> (id=275)
hash -1942791868
key "PRODUCT_ID" (id=900)
next HashMap$Entry<K,V> (id=901)
value BigDecimal (id=902)
[5] null
[6] null
[7] null
[8] HashMap$Entry<K,V> (id=276)
hash -1109968520
key "WM_DIFFVER" (id=904)
next null
value "DiffBase" (id=905)
[9] null
[10] HashMap$Entry<K,V> (id=278)
hash -1920690854
key "DISTRICT_CODE" (id=906)
next null
value "TX_N_DIS" (id=907)
[11] HashMap$Entry<K,V> (id=279)
hash -1948303941
key "WM_CODE" (id=909)
next null
value "NC" (id=910)
[12] HashMap$Entry<K,V> (id=280)
hash 1002278668
key "MODIFIED_DATE" (id=912)
next null
value TIMESTAMP (id=913)
[13] null
[14] null
[15] null
MAP_ID エントリを取得できませんが、データベースから文字列として返されます。