[英]How to remove listeners from LinkedHashMap objects when key is removed
[英]How to increase key by 1 in LinkedHashMap when calling method
請幫我找到解決方案。
如果檢查了這個詞,我需要它被添加到LinkedHashMap
並且對於每個添加的詞,鍵都增加了 1。我不知道我會寫多少個詞,所以我不能使用循環。
LinkedHashMap<Integer,String> terms= new LinkedHashMap();
LinkedHashMap<Integer,String> definitions=new LinkedHashMap();
public void menuItem() {
int iTerms=0;
int iDef=0;
boolean point=true;
while (point){
System.out.println("Input the action (add, remove, import, export, ask, exit):");
String item=scanner.nextLine();
switch (item){
case "add":
Items.addCard(terms,definitions,iTerms,iDef);
break;
case "remove":
// Items.removeCard(terms,definitions*/);
break;
case "import":
Items.importCard();
break;
case "export":
break;
case "ask":
break;
case "exit":
point=false;
break;
}
}
}
public static void addCard(LinkedHashMap terms,LinkedHashMap definitions,int iTerms,int iDef){
Scanner scanner = new Scanner(System.in);
String it,answer;
System.out.println("The card:");
it=scanner.nextLine();
if(terms.containsValue(it)){
System.out.println("The card \""+it+"\" already exists.");
}else {
// ++iTerms;
terms.put(++iTerms, it);
System.out.println(iTerms+"The definition of the card:");
answer = scanner.nextLine();
if(definitions.containsValue(answer)){
System.out.println("The definition \""+answer+"\" already exists.");
}else {
iDef++;
definitions.put(iDef,answer);
System.out.println(iDef+"The pair (\""+ terms.get(iTerms)+"\":\""+definitions.get(iDef)+"\") has been added.");
}
}
System.out.println(terms);
System.out.println(definitions);
}
執行此代碼時,無論我添加多少,鍵都會為 1(並且每次添加都應該增加)。
利用containsKey()
方法類似這樣的東西
if(map.containsKey(1)){
map.put(map.keySet().stream().findFirst().get()+1 , your_String_value); //Increment one to two and likewise
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.