只有滿足條件時,是否有任何方法可以將值(或更改密鑰的值)添加到密鑰?只有在散列表條件下才將值添加到密鑰
我的意思是,是這樣的:
myHashMap.add(key, if(true){//add this value} else {//add a different value});
只有滿足條件時,是否有任何方法可以將值(或更改密鑰的值)添加到密鑰?只有在散列表條件下才將值添加到密鑰
我的意思是,是這樣的:
myHashMap.add(key, if(true){//add this value} else {//add a different value});
是,使用if-else
:
if (condition){
myHashMap.put(key, value);
} else {
myHashMap.put(key, otherValue);
}
如果硬要使其短期使用三元運算(請參閱Oracle tutorial,的條件運算符部分):
myHashMap.put(key, condition ? value : otherValue);
謝謝。第二個解決方案就是我所期待的。 –
@hello_its_me是的,它爲你工作;但風格非常糟糕。至少你應該把這個東西包裝成一個單獨的方法。重點不在於編寫**最短的**代碼;成爲一名優秀的程序員是關於編寫最**可讀的**代碼。這是關於學習和理解概念... – GhostCat
@hello_its_me作爲ghostcat提到,你應該小心編寫永遠不會被讀取的代碼。 –
不完全是,你將不得不做這樣的事情:
// Assuming a boolean value is returned
if (myHashMap.get(key)) {
myHashMap.put(key, value);
} else {
myHashMap.put(key, differentValue);
}
'add'不是'Map'的方法 – Dici
哦哇,哎呀!固定。 –
只是爲了釘到Reut的答案,如果你想對某個值已經在地圖上進行操作,還有地圖#計算作爲Java的8:
Map<String, String> example = new HashMap<>();
//pretending we have values...
example.compute("My Key", (key, oldValue) -> oldValue == null ? "New" : "Read");
是的,我一直在檢索舊值並進行編輯。不使用這種方式,它看起來更整齊。謝謝! –
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html – user1803551
@ user1803551這不回答我的問題。 –
哦,它的確如此。它向你展示了你需要做的所有事情,以實現你想要的。它比你得到的答案更詳細。 – user1803551