ContentValues
ContentValues 和HashTable類(lèi)似都是一種存儲(chǔ)的機(jī)制 但是兩者最大的區(qū)別就在于,contenvalues Key只能是String類(lèi)型,values只能存儲(chǔ)基本類(lèi)型的數(shù)據(jù),像string,int之類(lèi)的,不能存儲(chǔ)對(duì)象這種東西。ContentValues 常用在數(shù)據(jù)庫(kù)中的操作。
在往數(shù)據(jù)庫(kù)中插入數(shù)據(jù)的時(shí)候,首先應(yīng)該有一個(gè)ContentValues的對(duì)象所以:
ContentValues initialValues = new ContentValues();
initialValues.put(key,values);
SQLiteDataBase sdb ;
sdb.insert(database_name,null,initialValues);
HashMap和HashTable
HashMap不是線(xiàn)程安全的,HashTable是線(xiàn)程安全的一個(gè)Collection。HashMap允許將null作為一個(gè)entry的key或者value,而Hashtable不允許。
hastmap是一個(gè)接口 是map接口的子接口,是將鍵映射到值的對(duì)象,其中鍵和值都是對(duì)象,并且不能包含重復(fù)鍵,但可以包含重復(fù)值。HashMap允許null key和null value,而hashtable不允許。
HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線(xiàn)程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線(xiàn)程安全,效率上可能高于Hashtable。HashMap允許將null作為一個(gè)entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因?yàn)閏ontains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類(lèi),而HashMap是Java1.2引進(jìn)的Map interface的一個(gè)實(shí)現(xiàn)。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個(gè)線(xiàn)程訪(fǎng)問(wèn)Hashtable時(shí),不需要自己為它的方法實(shí)現(xiàn)同步,而HashMap 就必須為之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會(huì)有很大的差異。