Javase之集合泛型
2019-03-03 16:10
302 查看
集合泛型知识
泛型
是一种把类型明确工作推迟到创建对象或者调用方法的时候才明确的特殊类型。
也称参数化类型,把类型当成参数传递。
在jdk1.5中出现。一般来说经常在集合中使用。
-
格式
<数据类型>
此处的数据类型只能是引用类型
-
好处
1.把运行期间的问题提前到编译时期。
2.避免了强制类型转换。
3.优化了程序,解决了警告。
-
泛型产生原因
早期,Java中使用Object来表示所有类型。向上转型没有问题,但是在向下转型的时候隐含了类型转换问题。
也即是说,这样的程序是不安全的。所以在Java的JDK5以后引入了泛型,提高了程序安全性。
-
泛型的应用
泛型类
把泛型定义在类中
格式:public class 类名<泛型类型1,…>(表明可定义多个泛型类型,每个类型之间用逗号隔开。)
public class objectTool<T>{ private T obj; public T getObj(){ return obj; } public void setObj(){ this.obj = obj; } }
-
泛型方法
把泛型定义在方法上
格式:public <泛型类型> 返回类型 方法名(泛型类型);
public <T> void show(T t){ System.out.println(t); }
-
泛型接口
把泛型定义在接口上
格式:public interface 接口名<泛型类型1,…>
interface Inter<T>{ public abstract void show(T t); } //实现接口 //1.知道要用什么类型 //class InterImpl implements Inter<String>{ // // @Override // public void show(String t) { // System.out.println(t); // } //} //2.不知道要用什么类型 class InterImpl<T> implements Inter<T>{ @Override public void show(T t) { System.out.println(t); } }
泛型高级之通配符
泛型如果明确的写出,则前后必须一致
class Animal { } class Dog extends Animal{ } class Cat extends Animal{ }
?
表示任意类型,如果没有明确那么就是Object及Java任意类
Collection<?> c1 = new ArrayList<Object>(); Collection<?> c2 = new ArrayList<Animal>(); Collection<?> c3 = new ArrayList<Dog>(); Collection<?> c4 = new ArrayList<Cat>();
?extends E
向下限定,E及其子类
Collection<? extends Animal> a1 = new ArrayList<Animal>(); Collection<? extends Animal> a2 = new ArrayList<Dog>(); Collection<? extends Animal> a3 = new ArrayList<Cat>();
?super E
向上限定,E及其父类
Collection<? super Animal> b1 = new ArrayList<Animal>(); Collection<? super Animal> b2 = new ArrayList<Object>();
相关文章推荐
- JavaSE入门学习40:Java集合框架之泛型
- 【JavaSE笔记】集合(二)_泛型
- javase重新开始系列之集合与泛型
- 【JavaSE系列-基础篇6】——数组,集合,泛型宏观把控
- JavaSE| 集合| 泛型
- JavaSE入门学习40:Java集合框架之泛型
- JavaSE(9):java集合与泛型
- JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序
- javaSE(10)(Map集合)
- JavaSE——Java集合(I)
- 黑马程序员-day15-集合框架(泛型)
- 集合与泛型的运行时间测试
- (转)C#泛型集合揽胜
- C#读取数据库返回泛型集合(DataSetToList)
- JavaSE 集合框架(3)- Map集合 HashMap LinkedHashMap
- Java 冒泡排序List<Object>泛型集合对象
- Dictionary 泛型集合
- JavaSE基础之集合大家庭
- 集合 ArrayList 集合的继承实现关系 Collection Iterator迭代器 增强for循环 泛型 集合的向下转型
- Linq to 泛型集合查询集合包括大写M和年龄小于等于18