相关疑难解决方法(0)

用Java创建地图

我想创建一个map包含条目的条目(int, Point2D)

我怎么能用Java做到这一点?

我尝试了下面的失败.

HashMap hm = new HashMap();

hm.put(1, new Point2D.Double(50, 50));
Run Code Online (Sandbox Code Playgroud)

java map

68
推荐指数
6
解决办法
24万
查看次数

在Java 9中重载的方便工厂方法的重点是什么?

Java 9附带了用于创建不可变列表的便捷工厂方法.最后,列表创建非常简单:

List<String> list = List.of("foo", "bar");
Run Code Online (Sandbox Code Playgroud)

但是这个方法有12个重载版本,11个有0到10个元素,另一个有var args.

static <E> List<E>  of(E... elements)
Run Code Online (Sandbox Code Playgroud)

同样是与案件Set和Map.

由于存在var args方法,有多少11种方法有什么意义呢?

我认为var-args创建一个数组,所以其他11个方法可以跳过创建一个额外的对象,在大多数情况下会有0-10个元素.还有其他原因吗?

java collections variadic-functions java-9

25
推荐指数
3
解决办法
1801
查看次数

从Map条目初始化Map <String,Object>实例

说我有一些像这样的地图条目:

var a = Map.entry("a", new Object());
var b = Map.entry("b", new Object());
var c = Map.entry("c", new Object());

var m = Map.of(a,b,c);  // error here
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

无法解析方法'(java.util.Map.Entry,java.util.Map.Entry,java.util.Map.Entry)'

我只是想从地图中的条目创建一个新的地图,我该怎么做?问题不在于如何在给定Map.Entry实例的情况下初始化Map.

java hashmap java-10

12
推荐指数
1
解决办法
915
查看次数

Java 11不可变地图:创建Map.Entry

在Java 11中,有一组静态方法java.util.Map可以实例化AbstractImmutableMap:

static <K, V> Map<K, V> of(K k1, V v1) { return new Map1(k1, v1); }
static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2) { return new MapN(new Object[]{k1, v1, k2, v2}); }
// ... some more "vararg" static methods until 10 pairs (inclusive).
Run Code Online (Sandbox Code Playgroud)

还有另一种方法,除了true-vararg之外,几乎相同:

static <K, V> Map<K, V> ofEntries(Map.Entry<? extends K, ? extends V>... entries) { /* impl here */ }
Run Code Online (Sandbox Code Playgroud)

我想使用后一种方法,因为它允许将条目数扩展到远远超过十个。问题是,我不知道如何创建Map.Entry。它在不同的Maps中有很多实现,但是没有new运算符或静态构造方法,但是 …

java java-11

2
推荐指数
1
解决办法
61
查看次数