Q
需要的Java
4
A
回答
8
您所描述的Map
和HashMap
的行为是其他评论者注意到的预期行为。你想要的是一个多图。你可以自己推出(不要这样做 - 其他评论者建议将地图映射到列表中,但这很快就会变得很麻烦。如果你真的想推出自己的产品,可以使用列表/设置值推出自己的通用多图,并隐藏复杂性。 )或使用Guava的multimap。例如:
import com.google.common.collect.HashMultimap;
import com.google.common.collect.SetMultimap;
public static void main(String[] args)
{
final SetMultimap<Integer, Integer> foo = HashMultimap.create();
foo.put(1,35);
foo.put( 1,30);
foo.put( 1,20);
foo.put( 2,10);
foo.put( 3,40);
foo.put( 3,25);
foo.put( 3,15);
System.out.println(foo);
}
输出:
{1 = [35,20,30],2 = [10],3 = [25,40, 15]}
如果你想访问这些值,有几种方法取决于你想要做什么。只需拨打get(Integer key)
即可返回值的集合。
此外,检查出this answer,其中引用了许多相关的善良在番石榴。
6
4
您可以使用Map<Long, List<Long>>
(或您拥有的任何类型)来解决此问题。
2
A Map
只有一个键值。您可以使用Guava/Google Collections的Multimap
接口为密钥存储多个值。
0
或者创建一个对< F,S>类,并把它们放在一个列表
列表<对<整数,整数>>
相关问题
- 1. 需要在Java
- 2. 需要在Java
- 3. 需要JAVA
- 4. 需要使用Java
- 5. 不需要在Java
- 6. 需要Java帮助
- 7. ,我需要用java
- 8. 需要在Java中
- 9. 需要Java帮助
- 10. 需要在Java中
- 11. 我需要用java
- 12. 不需要在Java
- 13. 我需要用java
- 14. 需要使用Java
- 15. 需要帮助JAVA
- 16. 是否需要hadoop的java?
- 17. 需要帮助的Java
- 18. Simbad的需要Java 3D
- 19. 需要Java中的Transaction API
- 20. Java需要的输出
- 21. 的Java Swing需要帮助
- 22. 需要帮助的在Java
- 23. Java泛型,说明需要
- 24. Java - 需要帮助java.lang.ArrayIndexOutOfBoundsException
- 25. 需要帮助Java中
- 26. Grails 2.4.3需要Java 1.8.0吗?
- 27. 需要通过引用Java
- 28. 需要String Java帮助
- 29. 需要Java websocket客户端
- 30. 在LuaJ中需要Java类