2013-01-23 50 views
0

可能重複:
removing value from the list加入一個參數還

我有一個查詢我有這樣

Map ab = new HashMap<String, List<String>>(); 

一個地圖,它包含這樣

1 22 23 24 25 

所以1是鍵,值是22,23,24,25

現在我想改變結構

這樣

1 22 23 24 25 | M 

在列表中顯示的上述,除了從22,23,24,25我想存管| M也請告知如何實現這個

+1

你是如何將這些元素添加的休息嗎? –

+1

管道| M是什麼意思? –

回答

1

你可以用((List<String>)ab.get("1")).add("|M")

編輯:修改爲它的原始地圖<Object, Object>。請注意,這是一個未經檢查的強制轉換。當你知道你的Map將包含什麼時,你不應該使用原始類型。避免未經檢查的演員的另一種選擇是使用instanceof運算符。

+0

不,他不能,因爲'ab'是對'Map'(原始類型)的引用,而不是'Map >'(泛型)。 – jlordo

+0

謝謝,剛剛看到聲明。 – Swapnil

+1

恕我直言,在這種情況下使用泛型類型和錯誤的建議來引入類型轉換是個好建議。 – jlordo

-1

用這個值創建一個新的列表並將其放在地圖上,並且將它替換掉。

0

試試這個

Map ab = new HashMap<String, List<String>>(); 
     ab.put("1", "22 23 24 25"); 
     Iterator it = ab.entrySet().iterator(); 

      if (ab.containsKey("1")) { 
       String value = (String) ab.get("1"); 
       value += "| M"; 
       ab.put("1", value); 
      } 

     System.out.println(ab.get("1")); 
0

所以,建立在Swapnil的回答則:

Map<String,List<String>> ab = new HashMap<String, List<String>>(); 

List<String> valueList = ab.get("1"); 
if (valueList == null) { 
    valueList = new ArrayList<String>(); 
    ab.put("1",valueList); 
} 
valueList.add ("|M");