[英]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.