草庐IT

java - 从 Java 中的 HashMap 中删除重复值

我有一张包含重复值的map:("A","1");("B","2");("C","2");("D","3");("E","3");我想map有("A","1");("B","2");("D","3");你知道如何去除重复值吗?目前,我收到“java.util.ConcurrentModificationException”错误。谢谢。publicstaticvoidmain(String[]args){HashMapmap=newHashMap();map.put("A","1");map.put("B","2");map.put("C","2");map.put("D","3");ma

java - 使用 Java 8 流处理 map 列表

如何将此代码简化为单个lambda表达式?这个想法是有一个map列表,我想创建一个新的map列表,使用键上的过滤器。在这个例子中,我想重新映射它,以便它只保留键“x”和“z”。Mapm0=newLinkedHashMap();m0.put("x","123");m0.put("y","456");m0.put("z","789");Mapm1=newLinkedHashMap();m1.put("x","000");m1.put("y","111");m1.put("z","222");Listl=newArrayList(Arrays.asList(m0,m1));Listtx=ne

java - 如何使用 JAVA 8 从 map 中获取第一个键值?

至于现在我在做什么:MapprocessedItem=processedItemMap.get(i);Map.EntryentrySet=getNextPosition(processedItem);Itemkey=entrySet.getKey();Booleanvalue=entrySet.getValue();publicstaticMap.EntrygetNextPosition(MapprocessedItem){returnprocessedItem.entrySet().iterator().next();}有没有更简洁的方法用java8来做到这一点?

java - Map.containsKey() 有用吗?

这个问题在这里已经有了答案:IsusingjavaMap.containsKey()redundantwhenusingmap.get()(6个答案)关闭9年前。我想知道,在尝试访问特定key之前检查它是否有意义。示例:MapmyMap....ifmyMap.containsKey(key){Objectvalue=myMap.get(key);.....}不使用containsKey的例子:Objectvalue=myMap.get(key);if(value!=null){......}编辑:澄清空键和空值。比方说,该映射不允许空键和空值,因此这两个示例是相同的。

Java 键 - 键映射

我需要一种可在两个方向访问的映射,因此使用键-键结构而不是键-值。这在Java中存在吗?如果没有,创建它的最佳方法是什么?举个例子:mySpecialHashMap.put("key1","key2");mySpecialMap.getL2R("key1")returns"key2";mySpecialMap.getR2L("key2")returns"key1"; 最佳答案 所以你想要一个双向map。您可以使用ApacheCommonsCollectionsBidiMap或GoogleCollectionsBiMap为此。

Java 泛型放在 Map<String, ?扩展列表<String>>

有没有办法以类型安全的方式进行以下实现?publicvoidmyMethod(Map>map){map.put("foo",Collections.singletonList("bar");}上面的实现不起作用。它需要Map>编译方法map.put()正确。但是myMethod不会以这种方式接受List的任何子类型。所以,我必须使用Map>反而。我怎样才能以类型安全的方式解决这个问题? 最佳答案 publicvoidmyMethod(Map>map){map.put("foo",Collections.singletonList("

具有重复键的 java 映射

这个问题在这里已经有了答案:Mapimplementationwithduplicatekeys(19个回答)关闭9年前。我正在创建一个需要存储键值对的程序。程序需要接受键形式的请求,并返回相应的值。问题是有时每个键有多个值,map类不允许重复键。这些值是数字,所以我无法像连接字符串那样有意义地连接这些值。是否有任何优雅的方式来说明每个键可以有多个数值这一事实?我希望返回每个数字,而不是随机返回一个。

java - 任何可以快速打印 map 的实用程序

我想知道是否有任何实用程序可以快速打印map以进行调试。 最佳答案 您可以只打印Map的toString()以获得1行版本的map,分为键/值条目。如果这不够可读,您可以自己循环打印或使用Guava这样做:System.out.println(Joiner.on('\n').withKeyValueSeparator("->").join(map));这会给你表单的输出key1->value1key2->value2... 关于java-任何可以快速打印map的实用程序,我们在Stack

java - 在 Play 中使用 Map 作为模型的属性

我正在尝试使用map作为我的一个模型属性的类型。我们以这两个类为例:@EntitypublicclassFooextendsModel{@OneToMany(mappedBy="foo",cascade=CascadeType.ALL)@MapKey(name="name")publicMapbars;publicStringname;}@EntitypublicclassBarextendsModel{@ManyToOnepublicFoofoo;publicStringname;}当然非常简单,但这是基本思想。因此,我想要实现的目标是获取一个以Bars作为值,以名称作为Foo键的映

java - 在 Map 中查找最小值的有效方法

我试图在如下所示的Map中找到具有最小值的key。MapfreeMap=newTreeMap();NodeminNode=null;for(Map.Entryentry:freeMap.entrySet()){if(minNode==null){minNode=entry.getKey();}else{if(entry.getValue()首先,有没有比使用foreach循环更直接地找到具有最小value的key的方法。其次,您能否建议一些可用于存储Node对象和关联的Integer值的替代数据结构方法,这样我就可以获取entry在恒定时间O(1)中具有最小值。