我无法使它正常工作。想法是设计一种将“键值”对添加到Map的方法,尽管程序可以正确编译,但是测试代码的格式为“ tracker.put(“ 17/06/2019”,“ Jeffrey Burns”);“出现错误消息
我尝试将方法参数更改为(String,List)。
public class OfficeDeliveryTracker
private SortedMap<String, List<String>> deliveryTracker;
/**
* Constructor for objects of class OfficeDeliveryTracker
*/
public OfficeDeliveryTracker()
{
this.deliveryTracker = new TreeMap<>();
}
/**
* Adds key-value pair to the map
*/
public void addMapEntry(String key, String value)
{
List<String> list = deliveryTracker.get(key);
if (list == null) {
list = new ArrayList<String>();
}
list.add(value);
deliveryTracker.put(key, list);
}
我希望获得测试代码tracker.put(“ 17/06/2019”,“ Jeffrey Burns”);正常工作,而是得到“错误:第1行-找不到符号-方法put(java.lang.String,java.lang.String)”
答案 0 :(得分:2)
查看以下代码:
当您使用
SortedMap<String, List<String>>
时,它将String作为键,并将String列表作为值。
您不能使用tracker.put("17/06/2019", "Jeffrey Burns")
,因为“ Jeffrey Burns”是字符串而不是字符串列表
public class OfficeDeliveryTracker {
private SortedMap<String, List<String>> deliveryTracker;
/**
* Constructor for objects of class OfficeDeliveryTracker
*/
public OfficeDeliveryTracker() {
this.deliveryTracker = new TreeMap<>();
}
/**
* Adds key-value pair to the map
*/
public void addMapEntry(String key, String value) {
List<String> list = deliveryTracker.get(key);
if (list == null) {
list = new ArrayList<String>();
}
list.add(value);
deliveryTracker.put(key, list);
}
public static void main(String[] args) {
OfficeDeliveryTracker tracker = new OfficeDeliveryTracker();
//tracker.put("17/06/2019", "Jeffrey Burns"); // Error : The method put(String, String) is undefined for the type OfficeDeliveryTracker;
tracker.addMapEntry("17/06/2019", "Jeffrey Burns");
}
}