泛型类与接口、泛型方法
来源:互联网 发布:西北工业大学网络教育 编辑:程序博客网 时间:2024/06/02 04:34
- //泛型类
- package cn.huhui.demo02;
- /*
- *
- * 2017.9.13
- * 栈举列说明自定义泛型
- * 泛型类的定义及使用
- * 类名后加入:<E>即可
- *
- * */
- publicclassGenericStack<E>{
- private java.util.ArrayList<E> list =new java.util.ArrayList<E>();
- // 返回栈的长度
- publicint getSize(){
- return list.size();
- }
- // 返回栈顶元素
- public E peek(){
- return list.get(list.size()-1);
- }
- // 入栈
- publicvoid push(E o){
- list.add(o);
- }
- // 出栈
- public E pop(){
- E o = list.get(list.size()-1);
- list.remove(o);
- return o;// 注意这里是O
- }
- // 判断栈是否为空
- publicboolean isEmpty(){
- return list.isEmpty();
- }
- }
- //测试
- package cn.huhui.demo02;
- /*
- * 2017.9.13
- * 测试自定义的泛型类 栈的使用
- * 使用与ArrayList()<>相同
- *
- */
- publicclassGenericStackTest{
- publicstaticvoid main(String[] args){
- // TODO Auto-generated method stub
- // 存储字符串的栈
- GenericStack<String> stack=newGenericStack<String>();
- stack.push("bird");
- stack.push("apple");
- stack.push("pen");
- stack.push("good");
- System.out.println(stack.isEmpty());
- System.out.println(stack.getSize());
- // 存储整数的栈
- GenericStack<Integer> stack2=newGenericStack<Integer>();
- stack2.push(10);
- stack2.push(9);
- stack2.push(5);
- System.out.println(stack2.isEmpty());
- System.out.println(stack2.getSize());
- }
- }
- //泛型方法 非受限
- package cn.huhui.demo03;
- /*
- * 2017.9.13
- * 泛型方法的定义及使用
- * 定义过程:将泛型<E>置于方法头中关键字之后
- * 使用过程:类名.<T>函数名();
- * */
- publicclassDemo{
- publicstaticvoid main(String[] args){
- Integer[] integers={1,2,3,4};
- String[] strings={"hello","java","great"};
- Demo.<Integer>print(integers);
- Demo.<String>print(strings);
- }
- publicstatic<E>void print(E[] list){
- for(int i=0; i< list.length;i++){
- System.out.print(list[i]+" ");
- }
- System.out.println();
- }
- }
- //受限泛型
- package cn.huhui.demo04;
- /*
- * 2017.9.13
- * 受限泛类型
- * 非受限泛类型<E>相当于<E extends object>
- *
- * */
- publicclassDemo{
- publicstaticvoid main(String[] args){
- // TODO Auto-generated method stub
- Rectangle ret=newRectangle(2,2);
- Circle cir=newCircle(2);
- System.out.println("Same areas?"+equals(object1,Object2));
- }
- publicstatic<EextendsGeometricObject>boolean equals(E object1,EObject2){
- return object1.getAreas()==object2.getAreas();
- }
- }
阅读全文
0 0
- 泛型类与接口、泛型方法
- C#中泛型方法与泛型接口
- C#中泛型方法与泛型接口
- 泛型(三)之泛型接口与方法
- 泛型方法、泛型类、泛型接口
- 抽象方法与接口
- 抽象方法与接口
- 接口与泛型
- 泛型接口、方法、委托
- 泛型接口和方法
- C# 接口 与 接口方法实现
- Java类、方法与接口
- Cloneable接口与Clone方法
- 关于抽象方法与接口
- 接口的方法与变量
- 接口与泛型集合
- java中的 泛型类、泛型方法、泛型接口
- Java泛型:泛型类、泛型接口和泛型方法
- 关于ckeditor编辑器的问题.为什么会在源码里自动添加<p>标签
- 详细记录python的range()函数用法
- ArrayList
- HyperLedger Fabric:自顶向下的方法--第1篇 编译fabric源码及手工搭建单个Peer节点网络
- CSS 让数字滑动显示
- 泛型类与接口、泛型方法
- POJ-2386题解
- 二维码通讯录的实现
- Align With View和Align View To Select之妙用
- wait()函数,自杀函数abort(),WIFEXITED WIFSIGNALED
- Vue新手入门-1
- Sprites,Editor使图片生成prefab
- 数据库Oracle 数据导入/导出说明
- python any()和all()用法