【问题标题】:ArrayList to Hashmap ConversionArrayList 到 Hashmap 的转换
【发布时间】:2014-05-20 15:45:21
【问题描述】:

这最初是一个数组列表,我将其转换为哈希图,但出现错误 在从开关(类型)添加形状的方法中,我将shapes.add更改为shapes.put,但是仍然存在错误,感谢您的帮助。

    switch (type) { // getting errors here on all cases 
        case "Polygon":
            shapes.put(new RegularPolygon(name, val1, val2, x, y));
            break;
        case "Rectangle":
            shapes.put(new Rectangle(name, val1, val2, x, y));
            break;
        case "CharL":
            shapes.put(new LCharacter(name, val1, val2, x, y));
            break;
        default:
            errorMessage = "Invalid type " + type;
            break;

【问题讨论】:

  • 始终提供您收到的准确和完整的错误消息。并始终阅读您尝试使用的方法的 javadoc。
  • 为什么放弃 ArrayList 以支持 Map?我不认为你需要这里的地图。
  • 在 getShapes 中,您创建了两个数组。您可以删除第一个语句。
  • @ClaudioFernandez 是其任务的一部分

标签: java arraylist hashmap


【解决方案1】:

Map.put() 函数接受两个 参数:首先是键,然后是值。你只是提供价值。

您的代码应如下所示:

shapes.put("someKey", someShape);

更多信息,请查阅 API:http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

【讨论】:

  • 我的情况是什么?我怎么知道哪个是关键哪个是价值?
  • 这完全取决于您和您的代码上下文。什么是形状的键?也许它的名字?
  • 当我尝试这样做时它仍然给我一个错误,我需要设置值吗?在我进入之前?
  • 什么错误?用什么代码?您的问题需要更加具体。
  • 'code' case "Polygon": shapes.put(type , RegularPolygon));休息; 'code' 这就是我将其更改为现在我得到预期的错误表达式
猜你喜欢
  • 2017-08-14
  • 2012-06-02
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 2020-07-09
  • 2011-07-24
  • 1970-01-01
相关资源
最近更新 更多