2010-05-24 52 views
1

我是J2ME的新手。我有一個稱爲位置的矢量打印出來J2ME Hashtable查詢向量

[{X=NM0001-1, ccc=1327_10}, 
{X=NM0001-2, ccc=1329_10}, 
{X=NM0001-3, ccc=691_10}] 

當我把System.out.println(locations); 我設置了「X」和「ccc」是關鍵。 在我的程序中,我想查詢「ccc」的某個值是什麼「X」值。任何幫助將非常感激。

回答

1

你需要像這樣構造你的數據嗎?

有幾件事情要考慮:

  • CCC認證的每個值只有一種關聯值X?
  • Vector中的項目順序是否重要?
  • 數據結構的內容是否爲靜態的,即在程序執行過程中將數據添加到結構中,還是在啓動時寫入一次?
  • 您是否正在從結構中移除數據。

如果相關的值是唯一的,你可以與CCC值的單個哈希表鍵保存數據,然後針對特定鍵的值的檢索是微不足道的。如果鍵的順序很重要,您可以維護一個單獨的鍵盤矢量。

否則,您將不得不迭代Vector,從每個Hashtable檢索ccc鍵的值,如果該值匹配您的搜索值,請檢索X鍵的值作爲結果。類似這樣的:

for (int i = 0; i < locations.size(); i++) { 
    Hashtable ht = (Hashtable) locations.elementAt(i); 
    if (key.equals(ht.get("ccc"))) { 
     System.out.println("Value for key " + key + "=" + ht.get("X")); 
    } 
} 
+0

1. ccc是唯一的,但X不是。 2.順序無關緊要。 3.數據是靜態的;想法是在程序從文本文件開始時加載一次(目前工作正常)。 4.編號 我會試試這個。當我有變量「1329_10」時,我遇到的問題是如何搜索「NM0001-2」。對不起,我的無知;測試你的例子我需要將「key」定義爲Enumerator嗎?我可以在加載散列表的循環中進行搜索嗎?謝謝你的時間。 – 2010-05-24 19:03:26