黑马程序员——泛型
来源:互联网 发布:阿里云域名交易市场 编辑:程序博客网 时间:2024/05/22 04:56
------- android培训、java培训、期待与您交流! ----------
———————————————————————————————————————————————
|——JDk 1.5 以后的另一个新特性:
foreach语句for(类型 变量 :Collection集合或者数组)
Map集合不能直接使用foreach语句
可以转换为Set 集合
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(2, "zhangsan");
map.put(4, "lisi");
map.put(7, "xiaoqi");
map.put(5, "wangwu");
将所有的key存到Set集合中
——————————————————————————————
for(Integer key :map.keySet()){
String value = map.get(key);
System.out.println(key+":"+value);
}
将键值对的映射关系都存储到Set集合中
——————————————————————————————————————————————————————————————
for(Map.Entry<Integer, String> me :map.entrySet()){
Integer key = me.getKey();
String value = me.getValue();
System.out.println(key+":"+value);
}
|--可变参数的函数
int add(int x1,int x2... args){ //这里args其实就是数组,自动将这些元素封装成了数组。
for(int x:args){
sum+=x;
}
}
|--静态导入:
静态导入,其实导入的是类内部的静态成员
import static java.util.Collections.*;
26、 泛型 1.5 以后出现的
|——好处:
将运行时期的问题ClassCastException转到了编译时期。
避免了强制转换的麻烦。
|--泛型技术是给编译器使用的。确保了类型的安全。
|--擦除
运行时,会将泛型去掉,生成的class文件中是没有泛型的,这个称为泛型的擦除
是为了兼容运行的类加载器
|---泛型补偿
在运行时,会得到对象的字节码制动类型转换。不需要强制转换
|——泛型的自定义:
方法上自定义泛型 //放在返回值类型的前边
_____________________________________________________
public <T> void show(T obj){
System.out.println("show:"+ obj.toString());
}
类上自定义泛型
——————————————————————————————————————————————————————————
class Tools<Q>{
public Q getObj() {
return q;
}
public void setObj(Q q) {
this.q = q;
}
private Q q;
}
|---当方法静态时,不能访问类上定义的泛型,如果静态方法使用泛型,
只能讲泛型定义在方法上
如果Tools类中有这么一个方法
public static void method(Q obj){...} //这样是错误的
|---定义泛型后,只能访问Object类的方法
public <T> void show(T obj){
System.out.println("show:"+ obj.toString()); //这里的obj只能访问Object类的方法。不能访问其他类的特有方法
}
|——泛型接口:将泛型定义在接口上
interface A<Q>{
void show(Q obj);
}
class B<T> implements A<Q>{
void show(T obj){};
}
|——泛型的通配符 ?
集合框架中泛型 Collection<?>
|——泛型限定
|--上限 ? extends E //传进来的只能是E或者E的子类
对集合中的元素进行存储的 时候使用
|--下限 ? super E//传进来的只能是E或者E的父类
对集合中的元素进行取出的时候使用
比较器(可以使用父类比较器)
------- android培训、java培训、期待与您交流! ----------
———————————————————————————————————————————————
- 黑马程序员—泛型
- 黑马程序员—泛型
- 黑马程序员—泛型
- 黑马程序员—泛型
- 黑马程序员—泛型
- 黑马程序员—泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——泛型
- 黑马程序员——集合框架工具类
- 基础排序算法 – 冒泡排序Bubble sort
- 解决运行JScript的一个诡异错误
- 十进制数转二进制
- CSS图片垂直居中详解
- 黑马程序员——泛型
- 牛顿拉普森迭代法
- Java GUITest
- ASP.NET Event Validation and “Invalid Callback Or Postback Argument” : Part I
- 黑马程序员——常见API
- 八年程序员之书籍篇--杂谈篇(一):怎么阅读一本书?
- 学习cocos2d-x之路(3)--创建第一个场景
- C语言拾遗(四):分析switch语句机制
- 两个消息,有点迷茫