有一個有序的字符串列表與另一個列表進行比較,我決定實現一個作爲一個地圖在與關鍵字是字符串的第一個字符串和值的字符串列表具有相同的第一個字符。 總之我有什麼,因爲這:優雅的地圖實現
var list1:Map[Char, List[String]] = Map('a' -> List("alone", "away"))
var list2:List[String] = List("I", "am", "alone", "at", "home", "watching", "batman", "XD")
現在,在實現我的代碼這種方式,它是「硬」他們試圖要考慮的第一個作爲一個簡單的列表來工作,所以我在想,如果還有另一種更優雅的方式來解決這個問題。 如果我必須驗證list1是否具有「單獨」,我必須先獲取關鍵字'a',然後調用包含的方法。我必須執行這樣的事情。
if (list1("alone".charAt(0)).contains("alone")) ...
這是醜陋不得不每次提取密鑰,然後比較清單,我想創建一個引擎蓋下實現這個新的地圖(或清單)(它會自動提取關鍵和然後在列表上工作)。 你有什麼建議? 謝謝。
編輯:我重寫了部分問題,澄清了一些觀點。 第一個列表是有序的,第二個沒有。
你有一個有序的字符串列表嗎?或者是一個有序的String列表?爲什麼你有這個狡猾的地圖?爲什麼不使用簡單的列表? – 2011-06-05 16:47:46
那麼,我有一個有序的字符串列表,我這樣實現我的代碼相信它可以更快地做搜索和替換以及其他一些事情。我的意思是,在所有列表中搜索較小的列表會更快,否? – DDB 2011-06-05 16:53:31
你可能最好使用'Vector'。這樣的操作相當高效。 – 2011-06-05 17:03:27