到目前为止看了很多关于架构的书籍但Java基础并不牢固。
map是Java中提供的一种通用的元素存储方式,它是一种集合类。map集合类用于存储键值对(“键”、“值”)即Map<key,value>,每个键映射到一个值。但要注意的是
key不能重复。所以通过指定的key就可以取出对应的value。 Map接口定义了如下常用的方法: 1、void clear():删除Map中所以键值对。 2、boolean containsKey(Object key):查询Map中是否包含指定key,如果包含则返回true。3、boolean containsValue(Object value):查询Map中是否包含指定value,如果包含则返回true。4、Set entrySet():返回Map中所包含的键值对所组成的Set集合,每个集合元素都是Map.Entry对象(Entry是Map的内部类)。5、Object get(Object key):返回指定key所对应的value,如Map中不包含key则返回null。6、boolean isEmpty():查询Map是否为空,如果空则返回true。7、Set keySet():返回该Map中所有key所组成的set集合。8、Object put(Object key,Object value):添加一个键值对,如果已有一个相同的key值则新的键值对覆盖旧的键值对。9、void putAll(Map m):将指定Map中的键值对复制到Map中。10、Object remove(Object key):删除指定key所对应的键值对,返回可以所关联的value,如果key不存在,返回null。11、int size():返回该Map里的键值对的个数。12、Collection values():返回该Map里所有value组成的Collection。Map中包含一个内部类:Entry。该类封装了一个键值对,它包含了三个方法:1、Object getKey():返回该Entry里包含的key值。2、Object getValeu():返回该Entry里包含的value值。3、Object setValue(V value):设置该Entry里包含的value值,并返回新设置的value值。 二、HashMap和Hashtable实现类:1、HashMap与HashTable的区别:1) 同步性:Hashtable是同步的,这个类中的一些方法保证了Hashtable中的对象是线程安全的。而HashMap则是异步的,因此HashMap中的对象并不是线程安全的。因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合那么使用HashMap是一个很好的选择,这样可以避免由于同步带来的不必要的性能开销,从而提高效率。2) 值:HashMap可以让你将空值作为一个表的条目的key或value,但是Hashtable是不能放入空值的。HashMap最多只有一个key值为null,但可以有无数多个value值为null。2、性能:HashMap的性能最好,HashTable的性能是最差(因为它是同步的)3、注意:1)用作key的对象必须实现hashCode和equals方法。2)不能保证其中的键值对的顺序3)尽量不要使用可变对象作为它们的key值。73498407