A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 914360849 中级黑马   /  2015-5-27 21:46  /  301 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候,
早期定义Object来完成扩展,现在定义泛型来完成扩展。
--泛型类定义的泛型,在整个类中有效。如果被方法使用,那么泛型类的对象明确要操作的具体类型后,
所有方法要操作的类型就已经固定了。
为了让不同方法可以操作不同类型,而且类型还不确定。
那么可以将泛型定义在方法上:publi<T> void show(T t)。
特殊之处:静态方法不可以访问类上定义的泛型。如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。
泛型的限定:
?extends E:可以接收E类型或者E的子类型。上限。
?通配符。也可以理解为占位符。
?super E:可以接收E类型或者E的父类型。下限。
Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
1:添加
----put(K key,V value)
----putAll(Map<? extends K,? extends V> m)
2:删除
----clear()
----remove(Object key)
3:判断
----containsValue(Object obj)
----containsKey(Object key)
----isEmpty()
4:获取
----get(Object key)
----size()
----values()
----entrySet()
----keySet()
Map
----Hashtable():底层是哈希表数据结构,不可以存入nu ll键null值。线程同步的。jkd1.0,效率低。
----HashMap():底层是哈希表数据结构,运行使用null键和null值,该集合是不同步的。jdk1.2,效率高。
----TreeMap():底层是二叉树数据结构,线程不同步。可以用于给map集合中的键进行排序。
和set很像,其实,set底层就是使用了Map集合。
map集合的两种取出方式:
1,keyset:将map中所有的键存入到set集合,因为set具备迭代器。
   所以可以 迭代方式取出所有的键,再根据get方法,获取每一个键对应的值。
Map集合的取出原理:将map集合转成set集合,再通过迭代器取出。
2,Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.Entry。
   Map.Entry 其实Entry也是一个接口,它是Map接口的一个内部接口。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马