有没有办法在一个哈希表变量中存储多种数据类型?

sam*_*ell 7 java

我有一个Hashtable关键字String和值String,但我已经达到了我的项目中我需要能够存储多种不同数据类型的点.例如,我将需要存储int,String,Date,等等,都在同一个Hashtable.

pb2*_*b2q 7

HashTable或者任何Collection Map都可以处理这个,除了int和其他原始类型:你不能存储基本类型,只能存储Object引用.int将需要包装为Integer对象.

  • 不是真的,不是 - 不是没有演员,它仍然是挑剔的.你可以更好地使用不同类型的不同地图,或者 - 更好的是 - 只需创建一个包含每个不同名称的字段的类,而不是有一个`Map`,你希望你确定一切都是正确的类型. (2认同)

01e*_*1es 6

Map<String, Object> map = new HashMap<String, Object>() 
Run Code Online (Sandbox Code Playgroud)

这为您提供了一个包含String类型键和Object类型值的映射,它基本上是指Object(Date,Integer,String等)类型的任何后代.其他答案正确地指出这样一个事实,即不使用诸如int,boolean之类的原语,而是需要使用它们的对应物Integer,Boolean等.

get这种地图上的返回操作类型是Object.因此,开发人员有责任正确处理类型信息.

这里提供关于Hashtable和HashMap之间区别的问题的一个很好的答案.