簡體   English   中英

如何為變量使用參數來執行包含集合的地圖的方法

[英]How to use an argument for variables to execute a method for a map with a set included

我正在嘗試編寫一個帶有參數的方法作為地圖的鍵和地圖的值; 該值是一個集合。

我的方法標題是:

addMapEntry(String aKey, Set<String> aCustomer)

我不確定標頭是否正確,但是如果正確,我將如何執行該方法,因為我已經嘗試過類似的方法:

map.AddMapEntry("one", "Sony");

我只是收到類似的錯誤:

method addMapEntry in class CompanyCatalogue cannot be applied to given types;
  required: java.lang.String,java.util.Set<java.lang.String>
  found: java.lang.String,java.lang.String
  reason: actual argument java.lang.String cannot be converted to java.util.Set<java.lang.String> by method invocation conversion

我認為問題在於我需要使用變量作為映射的值,因為我已經使它不帶參數,也帶鍵的參數。 我似乎無法將值的參數匹配到我可以在方法中使用的任何內容。

實例變量

private Map<String, Set<String>> systemsSold;

構造函數

public CompanyCatalogue()
   {
      systemsSold = new HashMap<String, Set<String>>();
   }

我的方法

public void addMapEntry(String aUniqueKey, String aCustomer)
   {
      Set<String> newSet = new HashSet<String>();
      newSet.add("Joe");
      newSet.add("Mike");
      systemsSold.put(aUniqueKey, aCustomer);

   }

這已經超出了我的腦海,因此我們將不勝感激。

謝謝

第二個參數聲明為Set<String>但是您嘗試傳遞String 要從單個String創建Set<String> ,請使用Set<T> Collections.singleton(T)javadoc ):

map.addMapEntry("one", Collections.singleton("Sony"));

請注意,單例集是不可變的。 如果您打算稍后修改值(例如,通過添加元素),則可以將其包裝在new HashSet

map.addMapEntry("one", new HashSet<>(Collections.singleton("Sony")));

您正在傳遞單個String“ Sony”作為Set。 創建Set的實例並將其作為實際參數傳遞:

Set<String> mySet = new HashSet<String>();
mySet.add("Sony");
mySet.add("Crocket");

map.addMapEntry("one", mySet);

暫無
暫無

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

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