平时的开发中我们经常会遇见contentvalues,bundle,hashtable,hashmap这些类,总是感觉他们用法很像但是又不清楚他们之间有什么区别,今天抽空看了一下,总结出来供大家参考。
一,contentvalues
contentvalues的实现就是通过hashmap实现的,我们查看contentvalues的构造函数就能发现mValues = new HashMap<String, Object>(8);这说明contentvalues就是对hashmap的包装类,只是他把key固定为string类型,也就是说contentvalues的存储的键值对,键必须是string类型,而值是一些简单的内部类,int bool 等。android 文件存储的时候就是以contentvalues的形式写进去的。
二,hashtable
hashtable已经逐渐被hashmap代替,不鼓励使用。
三,bundle
bundle其实也是一个key-value 的键值对,也是通过map实现的。他是一个string到其他可打包数据类型的map。一般activity间的数据传递,比如oncreate中传入的参数就是一个bundle。
四,hashmap
hashmap是map的一种实现,支持各种操作,所有类型的要素都可以作为键或者值,包括null.