java学习中对泛型、Map、Collectiongs的一些理解
来源:互联网 发布:手机淘宝如何申请售后 编辑:程序博客网 时间:2024/05/22 11:48
泛型:
1、泛型定义,一种安全机制。表明参数或者接口或者类的数据类型,般是 < > 表示泛型,是在1.5之后才产生的,一般JDK“进化” 会更安全,更高效,更完整。在1.5之前,没有泛型都是用利用多态的思想强制转化成某个类型再得到想要的值,使用泛型过后, 可以在编译的环节直接知道数据的问题所在:ArrayList<Person> list = new ArrayList<Person>();泛型在什么时候使用?当不确定某个参数的类型的时候可用泛型。2、泛型的类泛型类在多个方法前面间实施类型约束。泛型一旦作用于类,那么该类的所有函数都可以使用该泛型类实例化该类的时候需要加入泛型确保安全。3、泛型的函数1、通常情况下参数内部不知道类型的时候使用泛型。public <QQ> void run(QQ q)4、 静态泛型函数:1、静态函数不可以访问类上定义的泛型。2、如果静态方法操作的应用数据类型不确定, 那么在函数上确定好泛型5、 泛型接口:* interface Run<TT>{public void run(TT a);public void runrun(TT b);}需要注意的是:一旦使用名字,那么在实现的时候需要确定是何种类型。来自官方普通的四种泛型<K> 键 <V> 值 <E> 异常类 <T> 普通泛型特殊情况:1、泛型的参数如果不考虑继承的话,会报错的,除非用?泛型通配符有三种:1、无限定通配符 , <?>2、上边界限定通配符 ,<? extends Number>ArrayList<? extends 类型1> x = new ArrayList<类型2>();类型1指定了一个数据类型,那么类型2只能是类型1或者类型1的子类3、下边界限定通配符 ,<? super Number>ArrayList<? super 类型1> x = new ArrayList<类型2>();类型1指定了一个数据类型,那么类型2就只能是类型1或者类型1的父类限定通配符总是包括自己!
Map
Map 集合:<键值对>就像是一本书的目录和内容,通常是通过目录去找内容。Map 无序的:1、增 put(key, value) putAll(Map<? extends K,? extends V> m)2、删 clear remove(Object key)3、改 put(K key, V value)4、查 keySet entrySet get sizeHashMap与TreeMap1、HashTable 同步的,Hash表的数据结构形式,速度慢2、HashMap 不同步的,Hash表的数据结构形式,速度快3、TreeMap 不同步的,Tree的数据结构形式,速度慢获取键的形式,遍历:1、keySet2、entrySetHashMAP 和 HashSet 区分与联系:1、都是通过哈希表做为数据结构存储数据。2、集合内部的数据都不重复。3、HashSet 其实就是一种HashMap,只不过不存在相关的key,也就是取值的时候只能用迭代。4、HashMap 没有迭代。需要转换成Set类型。
Collections
包装器与众多集合类一样实现了Collection接口。包装器里的方法都是由静态方法组成,可以直接通过类调用包装器里的方法:fill、reverse、max、min、replaceAll、shuffle、sort\fill: 使用指定元素替换指定列表中的所有元素。reverse: 反转指定列表中元素的顺序。max: 取列表中最大的元素,按自然排序。min:取集合中最小的元素,按自然排序。replaceAll: 使用另一个值替换列表中出现的所有某一指定值。shuffle:打乱列表sort: 自然排序,可重写比较器高级for循环:在1.5之后有foreachfor( xx : yy )高级for局限性:必须要有遍历的目标可变参数 JDK 1.5 特性其实一种数组参数的简写方式,代替实例化的过程,也称之为隐私封装数组.。可变参数原则:1、如果需要多个参数传入,请把其他的参数放在可变参数之前。2、可变参数只有... ,比如 int... 表示传入的int的数组。3、一个函数只能拥有一个可变参数。
0 0
- java学习中对泛型、Map、Collectiongs的一些理解
- 对JAVA中Map的理解
- 对java中Map的一些分析
- 对java中static的一些理解
- 对java中equals和hashCode函数的一些理解
- 对java中equals和hashCode函数的一些理解
- 对java中equals和hashCode函数的一些理解
- 对 Java 中 synchronized(this) 的一些理解和认识
- 对java中equals和hashCode函数的一些理解
- 转:对java中int与Integer的一些理解
- 对java中json格式变量数据的一些理解
- 对java中int与Integer的一些理解
- 对java中int与Integer的一些理解
- 对泛型的一些理解
- 对泛型理解的一些文章
- 对java中map学习笔记整理
- java 中对于接口的理解和我对java 的一些理解
- 对算法的一些学习和理解
- 平衡树之treap
- c++调用gnuplot显示数据图
- POJ 2774Long Long Message
- 搭建自己专属的vpn——Centos搭建vpn的几种办法
- Spring中定时任务Quartz集群配置学习
- java学习中对泛型、Map、Collectiongs的一些理解
- codeforces#round367b
- 异地恋如何维持
- 什么样的人生,才不会留遗憾
- 实现“两个变量的互换”的几种方法
- Aircrack-ng破解wifi实战
- 数据库小结【一】
- 使用win10性能监视器获得系统性能数据
- No grammar constraints (DTD or XML schema) detected for the document