繁体   English   中英

调用方法时如何在LinkedHashMap中将键加1

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM