使用Java中的“Map”在同一个键下存储多个(不同类型的)值

时间:2013-06-24 13:33:48

标签: java

我正在尝试使用以下

实例化地图结构
Map<Timestamp, Test> map = new Map<Timestamp, Test>();

其中Test是一个包含3种不同类型变量的类,Timestamp是java.sql.Timestamp类型。

但是我收到以下错误

  

无法实例化类型Map<Timestamp, Test>

我的主要目标是创建一个地图结构,我可以在同一个时间戳键下的Class实现中存储多个值/对象(不同类型)。

5 个答案:

答案 0 :(得分:9)

  1. Map<Timestamp, Test>

    您无法实例化Map,因为它是界面。您需要使用其中一个实现,如HashMap

  2. 除非值是对象(或)数组的集合,否则不能在HashMap中存储多个值。另一种选择是Google MultiMap

答案 1 :(得分:3)

你无法实例化界面。

在右侧使用HashMap

答案 2 :(得分:3)

Mapinterface。您无法实例化interface

您需要使用实现Map接口的类。看看here

答案 3 :(得分:2)

这样做:

Map<Timestamp, Test> map = new HashMap<Timestamp, Test>();

答案 4 :(得分:2)

这样做

Map<Timestamp, Test> map = new HashMap<Timestamp, Test>();

而不是

Map<Timestamp, Test> map = new Map<Timestamp, Test>();

因为您无法实例化接口Map

您提到的另一件事是您要存储不同类型的值,因此请使用Object作为值而不是Test:

  

Map<Timestamp, Object> map = new HashMap<Timestamp, Object>();