鱼C论坛

 找回密码
 立即注册
查看: 3207|回复: 0

[学习笔记] Java暑期学习Day37

[复制链接]
发表于 2017-8-12 22:36:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 马太效应 于 2017-8-12 22:36 编辑

今天是第37天,每天都要有一些收获


                               
登录/注册后可看大图



①泛型(Generics)简介
  1.是JDK5之后新增的特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。(所有的强制转换都是自动隐式
  让人在设计API时可以指定类或方法支持泛型,从而使API的客户端在语法上更简洁。


  2.泛型的原理是参数化类型,即把所要操作的数据类型看做是参数。
    <同一段代码上操作多种数据类型,顾名思义>
  3.泛型提高了代码的扩展性重用性


②泛型类
  1.泛型的类型参数可以是泛型类
  2.泛型类可以同时设置多个类型参数逗号隔开
  3.泛型类可以继承泛型类
  4.泛型类可以实现泛型接口


③定义泛型方法规则
  1.所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(如某些例子中的<E>)。
   E只是一个类型代号(表示Element),也可以用T、K、V等代号。


  2.每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。
    一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。


  3.类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符
4.泛型方法体的声明和其他方法一样。
  注意类型参数只能代表引用型类型不能是原始类型(像int,double,char的等)。
  
import java.util.Iterator;
import java.util.LinkedList;

public class LinkedListDemo2 {
        public static void main(String[] args) {
                MyStack<String> myStack = new MyStack<String>();
                myStack.push("zs");
                myStack.push("ls");
                myStack.push("ww");
                myStack.push("zl");
                myStack.pop();
                myStack.pop();
                Iterator<String> it = myStack.iterator();
                while (it.hasNext()) {
                        System.out.println(it.next());
                }
                System.out.println("************************");
                MyQueue<Integer> myQueue = new MyQueue<Integer>();
                myQueue.push(1);
                myQueue.push(2);
                myQueue.push(3);
                myQueue.push(4);
                myQueue.push(5);
                myQueue.pop();
                myQueue.pop();
                Iterator<Integer> it1 = myQueue.iterator();
                while (it1.hasNext()) {
                        System.out.println(it1.next());
                }

        }

}

class MyStack<T> {
        private LinkedList<T> data = null;

        public MyStack() {
                data = new LinkedList<T>();
        }

        public void push(T obj) {
                data.addFirst(obj);
        }

        public T pop() {
                return data.removeFirst();

        }

        public Iterator<T> iterator() {
                return data.iterator();

        }

}

class MyQueue<T> {
        private LinkedList<T> data = null;

        public MyQueue() {
                data = new LinkedList<T>();
        }

        public Iterator<T> iterator() {
                // TODO Auto-generated method stub
                return data.iterator();
        }

        public void push(T obj) {
                data.addFirst(obj);

        }

        public T pop() {
                return data.removeLast();
        }

}
结果是——


ls
zs
************************
5
4
3







评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-20 22:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表