QQ登录

只需一步,快速开始

搜索
查看: 99|回复: 0

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

[复制链接]
最佳答案
2 
累计签到:46 天
连续签到:1 天
发表于 2017-8-12 22:36:49 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

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的等)。
  
  1. import java.util.Iterator;
  2. import java.util.LinkedList;

  3. public class LinkedListDemo2 {
  4.         public static void main(String[] args) {
  5.                 MyStack<String> myStack = new MyStack<String>();
  6.                 myStack.push("zs");
  7.                 myStack.push("ls");
  8.                 myStack.push("ww");
  9.                 myStack.push("zl");
  10.                 myStack.pop();
  11.                 myStack.pop();
  12.                 Iterator<String> it = myStack.iterator();
  13.                 while (it.hasNext()) {
  14.                         System.out.println(it.next());
  15.                 }
  16.                 System.out.println("************************");
  17.                 MyQueue<Integer> myQueue = new MyQueue<Integer>();
  18.                 myQueue.push(1);
  19.                 myQueue.push(2);
  20.                 myQueue.push(3);
  21.                 myQueue.push(4);
  22.                 myQueue.push(5);
  23.                 myQueue.pop();
  24.                 myQueue.pop();
  25.                 Iterator<Integer> it1 = myQueue.iterator();
  26.                 while (it1.hasNext()) {
  27.                         System.out.println(it1.next());
  28.                 }

  29.         }

  30. }

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

  33.         public MyStack() {
  34.                 data = new LinkedList<T>();
  35.         }

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

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

  41.         }

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

  44.         }

  45. }

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

  48.         public MyQueue() {
  49.                 data = new LinkedList<T>();
  50.         }

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

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

  57.         }

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

  61. }
复制代码
结果是——


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







评分

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

查看全部评分

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-10-23 23:26 Powered by Discuz! X2.5 Theme by dreambred

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