【问题标题】:Updating a object in a TreeMap (Java)更新 TreeMap (Java) 中的对象
【发布时间】:2014-01-28 11:59:29
【问题描述】:

我有一个人的树形图,该树形图被键入一个名称和一个人对象。该人对象有另一个包含更多数据的树形图。我正在尝试读取不统一的数据并使用此代码用更多数据更新所述树形图:

golfer update = golfers.get(tempName);

course getCourse = courses.get(tempCourse);

tempDiff = (((tempScore - getCourse.rating) * 113) / getCourse.slope);
update.scores.put(tempCalendar, tempDiff);

golfers.put(tempName, update);

但是,在运行所有代码后,我发现所有数据都被擦除了,只有最近的条目在树形图中。

你有什么想法吗?

【问题讨论】:

  • 为什么用新的高尔夫球手()初始化“更新”,然后立即用地图上的高尔夫球手替换它?
  • 欢迎来到 Stack Overflow!如果没有有效的代码示例,将很难回答您的问题。请将您的代码发布为minimal, complete, tested and readable example,以证明您的问题。另请注意,TitleCase 是在 Java 中命名类的正确方法。
  • 临时名称是关键。什么是临时名称?所有条目都一样吗?
  • 如果您使用 golfers.get 在您的地图中找到高尔夫球手,则您无需在处理完高尔夫球手后将其放回地图中。所以最后一个 put 是没用的。但这不适用于 update.scores:我猜你正在存储一个新值。

标签: java class object treemap


【解决方案1】:

请注意! TreeMap 或任何其他 Map 实现需要唯一的 keys

因此,请检查tempName 变量是否在每次迭代时都更新为新值。否则很明显数据会被覆盖,只保留最后一个值。

【讨论】:

    猜你喜欢
    • 2015-12-05
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2013-06-05
    • 2014-12-23
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多