我可以操作hashmap来存储多种数据类型吗?

时间:2017-04-27 21:57:43

标签: java collections hashmap

我有一个hashmap,它将一个键存储为String,一个Integer存储为Value。

    HashMap<String, Integer> Items;

我想在此存储多个数据类型,如果Hashmap的所有值元素具有相同的数据类型,我查找的内容只能解决问题。

无论如何在Hashmap中都有多种数据类型,如此

HashMap<String, Integer, BigDecimal, Date> items;

我知道可以将这些数据类型之一的多个值存储为arraylist,但仍然只允许我选择一种数据类型。

我可以使用另一个允许存储多种数据类型的集合吗?

由于

3 个答案:

答案 0 :(得分:0)

您可以使用要存储的所有类型的超类。如果您想存储不同类型的数字,例如可以

HashMap<String, Number> items;

您可以使用以下方式一直到Object

HashMap<String, Object> items;

允许你在那里存储任何东西。

但是,根据您正在做的事情,这可能会因instanceof检查和投射的必要性而对性能产生负面影响。

答案 1 :(得分:0)

将这些数据类型包装到一个覆盖hashCodeequals的类中。 (我把它作为读者的练习。)

public class Amalgam {
    private Integer field1;
    private BigDecimal field2;
    private Date field3;
}

然后你可以直接使用Map

Map<String, Amalgam> items = new HashMap<>();

答案 2 :(得分:-2)

试试这个,

HashMap<String, Object> items;

但是在检索项目时必须小心

相关问题