我可能在這裏很愚蠢......但我需要幫助這個!基本上我需要做一個.contains(「消息」)來確定密鑰是否已經包含傳入的消息。試圖獲取hashmap中的arraylist值
在此先感謝!
編輯:就像一個筆記,我不希望它做任何事情,如果它已經存在!目前它沒有將其添加到列表中。
EDIT2:由於傳入消息沒有日期部分,所以日期對於傳入消息無關緊要。
private Map<Integer,List<String>> map = new HashMap<Integer,List<String>>();
public synchronized void addToProblemList(String incomingMessage, int storeNumber){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy h:mm:ss a");
String formattedDate = sdf.format(date);
if(map.get(storeNumber)==null){
map.put(storeNumber, new ArrayList<String>());
}
for(String lookForText : map.get(storeNumber)){
if(lookForText.contains(incomingMessage)){
}else if(!lookForText.contains(incomingMessage)){
map.get(storeNumber).add(incomingMessage+"\nTime of incident: "+formattedDate+"\n--------------------------------------------------------");
}
}
}
它曾經是這樣的,但它總是添加它:
public synchronized void addToProblemList(String incomingMessage, int storeNumber){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy h:mm:ss a");
String formattedDate = sdf.format(date);
if(map.get(storeNumber)==null){
map.put(storeNumber, new ArrayList<String>());
}
if(map.get(storeNumber).contains(incomingMessage)==true){
//Do nothing
}
if (map.get(storeNumber).contains(incomingMessage)==false){
map.get(storeNumber).add(incomingMessage+"\nTime of incident: "+formattedDate+"\n--------------------------------------------------------");
}
你現在遇到什麼問題,你有什麼試過? – lreeder
目前它沒有將它添加到列表中。 – Petro