簡體   English   中英

在Java中將Map鍵值從一個類復制到另一個類

[英]Copying Map key value from one class to another in Java

請有人幫我在 Java 中將 Map 鍵值從一個類復制到另一個類。

例子:

            public class FirstClass
            {   
               public static Map<String, Integer> firstMethod()
               {
                  Map<String, Integer> firstMap = new HashMap <String, Integer>();
                  firstMap.put("1234", 1000000);
                  firstMap.put("2345", 2000000);
                  firstMap.put("3456", 3000000);
                  firstMap.put("4567", 4000000);
                  return firstMap;
               }   
            }

   public class SecondClass

           public SecondClass()
           {
             instanceSet = new HashSet<ThirdClass>();
           }

      public void addInstance(String string)
       {
         ThirdClass integer = new ThirdClass(string);
         instanceSet.add(integer);     
       }   

       public void someMethod(Map<String, Integer> secondMap)
               {
                  for (ThirdClass instance : instanceSet)
                  {
                     if(secondMap.containsKey(instance.getinstanceNumber()))
                     {
                       //what should go in here??
                     }  
                  }   
               }  

本質上,如果 instanceSet 包含在 firstMap 中找到的鍵,那么如何提取該鍵的 Integer 值並將其復制到 secondMap 中相同鍵的 Integer 值?

我在網上環顧四周,但我發現的所有代碼示例似乎都不起作用,因為地圖存儲在單獨的類中。

像這樣的代碼。 您需要在someMethod引用firstMap ,反之亦然,具體取決於您要從哪里復制到哪里。

if(secondMap.containsKey(instance.getinstanceNumber())) {
       firstMap.put(instance.getinstanceNumber(), secondMap.get(instance.getinstanceNumber()));
} 

像這樣的東西——

public class FirstClass {
    public Map<String, Integer> firstMap;

    public FirstClass() {
        firstMap = new HashMap <String, Integer>();
        firstMap.put("1234", 1000000);
        firstMap.put("2345", 2000000);
        firstMap.put("3456", 3000000);
        firstMap.put("4567", 4000000);
    }

    public void updateMap(String key, Integer value) {
        firstMap.put(key, value);
    }
}

public class SecondClass {

    private Set<ThirdClass> instanceSet;
    private FirstClass firstClass;

    public SecondClass() {
        instanceSet = new HashSet<ThirdClass>();
        firstClass = new FirstClass();
    }

    public void addInstance(String string) {
        ThirdClass integer = new ThirdClass(string);
        instanceSet.add(integer);
    }

    public void someMethod(Map<String, Integer> secondMap) {
        for (ThirdClass instance : instanceSet) {
            if (secondMap.containsKey(instance.getinstanceNumber())) {
                firstClass.updateMap(instance.getinstanceNumber(), secondMap.get(instance.getinstanceNumber()));
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM