【问题标题】:Map has size limited to 3 elements地图的大小限制为 3 个元素
【发布时间】:2014-02-26 23:56:01
【问题描述】:

我正在尝试用 Java 填充地图,但由于某种原因,它不允许地图包含超过 3 个元素,即使我想要更多。我该如何解决这个问题?

这里是java代码,恰好在一个spring mvc应用的控制器方法中:

@ModelAttribute("addLinkOptions") 
public Map loadLinkOptions(){ 
    LinkedHashMap<String, String> addLinks = new LinkedHashMap<String,String>(); 
    addLinks.put("/calendar?day=2014-01-10","New this"); 
    System.out.println(" ......1 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New that"); 
    System.out.println(" ......2 size of addlinks is: "+addLinks.size());
    addLinks.put("/otherlink","New some other thing"); 
    System.out.println(" ......3 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New dog"); 
    System.out.println(" ......4 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New cat"); 
    System.out.println(" ......5 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New Car"); 
    System.out.println(" ......6 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New lizard"); 
    System.out.println(" ......7 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New bike"); 
    System.out.println(" ......8 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New motorcycle"); 
    System.out.println(" ......9 size of addlinks is: "+addLinks.size());
    addLinks.put("/","New frog"); 
    System.out.println(" ......10 size of addlinks is: "+addLinks.size());
    return addLinks;
}  

 ......1 size of addlinks is: 1
 ......2 size of addlinks is: 2
 ......3 size of addlinks is: 3
 ......4 size of addlinks is: 3
 ......5 size of addlinks is: 3
 ......6 size of addlinks is: 3
 ......7 size of addlinks is: 3
 ......8 size of addlinks is: 3
 ......9 size of addlinks is: 3
 ......10 size of addlinks is: 3
 ......10 size of addlinks is: 3

【问题讨论】:

  • 您的大部分密钥都是相同的。

标签: java spring spring-mvc


【解决方案1】:

映射是一个键/值存储,每个键都是唯一的,使用相同键添加值将覆盖使用该键的先前值。

【讨论】:

  • +1 感谢您的快速响应。我通过使用另一个类似的答案解决了这个问题。
  • 我将你的答案标记为答案,即使对方快了 2 分钟,因为你还没有任何分数。你想回答另一个问题吗?这是链接:stackoverflow.com/questions/22031119/…
【解决方案2】:

Map 的每个键只有一个元素。所以当你打电话时

addLinks.put("/","New dog"); 

删除/ 的旧条目并将其替换为"New dog"

我不知道你在这里真正想要什么:可能是来自 Guava 等第三方库的 Map&lt;String, List&lt;String&gt;&gt;ListMultimap&lt;String, String&gt;

【讨论】:

  • 它们每个链接到不同的东西,但为了测试我只是保持它们相同。我听取了您的建议,并为他们提供了不同的值,从而消除了问题。 +1 并感谢您的快速响应。
  • 我还有一个 java 问题。你愿意回答吗?这是链接:stackoverflow.com/questions/22031119/…
  • @CodeMed:不,我不是。 (尤其是因为我故意避免了解有关 Spring、Hibernate 或 JSP 的任何知识。)
  • 不用担心。并再次感谢您的快速响应。我给了 +1 并且如果你没有 1000 倍于 2 分钟后也给出正确答案的人的分数,我会将你的答案标记为接受的答案。我想你不会注意到这 15 分,而我却能将他的分数翻倍。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
相关资源
最近更新 更多