簡體   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