JAVA泛型接口
事例代码:
package com.xt.thins_15_3; import java.util.Iterator; /**
* 泛型接口
*
* @author xue
*
* @param <T>
*/
interface Generic<T> {
public T next();
} /**
* 斐波纳契(一种整数数列),普通类实现
*
* @author xue
*
*/
class Fibonacci implements Generic<Integer> { protected static int count = 0; @Override
public Integer next() {
// TODO Auto-generated method stub
return fib(count++);
} public int fib(int n) {
if (n < 2)
return 1;
return fib(n - 2) + fib(n - 1);
}
} /**
* 迭代适配器迭代斐波纳契(一种整数数列)
*
* @author xue
*
*/
class IterableFibonacci extends Fibonacci implements Iterable<Integer> { private int size; public IterableFibonacci(int size) {
this.size = size;
count = 0;
} @Override
public Iterator<Integer> iterator() {
// TODO Auto-generated method stub
return new Iterator<Integer>() { @Override
public void remove() {
// TODO Auto-generated method stub } @Override
public Integer next() {
// TODO Auto-generated method stub
size--;
return IterableFibonacci.this.next();
} @Override
public boolean hasNext() {
// TODO Auto-generated method stub
return size > 0;
}
};
} } public class FibonacciTest {
public static void main(String[] args) {
Fibonacci fib = new Fibonacci();
for (int i = 0; i < 20; i++) {
System.out.print(fib.next() + ",");
}
System.out.println("\n------------------------------");
IterableFibonacci ifib = new IterableFibonacci(20);
for (Integer integer : ifib) {
System.out.print(integer + ",");
}
}
}
JAVA泛型接口的更多相关文章
- java 泛型接口示例
/* * 泛型接口 */ interface Tool<t> { public void show(T t); //泛型方法 public <e> void print(E e ...
- java泛型接口详解
/* * 泛型接口 */ interface Tool<T> { public void show(T t); //泛型方法 public <E> void print(E e ...
- java 泛型接口和方法
java5后,可以声明泛型接口,声明方式和声明泛型类是一样的. public interface IDAO<T>{} 泛型接口子类有两种方式: 直接在子类后申明泛型: 在子类实现的接口中给 ...
- 全面总结Java泛型
本文对Java泛型进行了全面的总结.文章内容包括普通泛型.通配符.受限泛型.泛型接口.泛型方法.返回泛型类型实例等等. 虽然Scala创始人Martin Odersky说当年正是因为Java泛型的丑陋 ...
- Java 泛型(Generics)
Generics, 类似C++中的模版. 允许在定义类和接口的时候使用类型参数(type parameters), 声明的类型参数在使用的时候用具体的类型来替换. 如 ArrayList<Str ...
- Java泛型用法总结
普通泛型 class Point< T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T ...
- (私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例)
(私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例) https://pan.baidu.com/s/1L54VuFwCdKVnQGVc8vD1TQnwmj java手册 Ja ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java 泛型 -- 泛型类,泛型接口,泛型方法
泛型T泛型的许多最佳例子都来自集合框架,因为泛型让您在保存在集合中的元素上指定类型约束.在定义泛型类或声明泛型类的变量时,使用尖括号来指定形式类型参数.形式类型参数与实际类型参数之间的关系类似于形式方 ...
随机推荐
- DataSetToList 和 DataTableTolist 转换
DataSetToList 及DataTableTolist经常使用,在此分享一下我的方法. DataSetToList 和 DataTableTolist 转换 DataSetToList 和 Da ...
- Algorithms 4th - 1.1 Basic Programming Model - CREATIVE PROBLEMS
欢迎交流 1.1.26 public class TestApp { public static void main(String[] args) { int a = StdIn.readInt(); ...
- leetcode Binary Tree Level Order Traversal python
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = ...
- Linux命令学习之shift命令
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift ...
- 易宝网上支付平台的PHP接口代码
本代码参照自韩顺平149讲视频后5讲,需要学习的朋友可以参考本代码 这是测试图片: 以下是代码部分: <?php function HmacMd5($data, $key) { //需要配置环境 ...
- mysql服务端安装的系列问题处理
1.mysql服务无法启动,报1067错误 注意:mysql服务端加压之后的文件名最好不要带其他符号(如:"_"之类等其他的一些符号),用纯英文跟数字就可以,没有经过仔细验证带符号 ...
- ajax调用后台Java
//html部分 <input type='text' placeholder='用户名' id="username" name="username" c ...
- vvv
すぎやま(杉山) ハイコンテンツコンテスト assortedアクセント・音節as・sórt・ed 発音記号/‐ṭɪd/音声を聞く [形容詞]1分類した,仕分けした.2〈ビスケットなど〉詰め合わせの.用 ...
- Internet设置->连接选项卡->局域网(LAN)设置 某些设置由系统管理员进行管理
今天突然发现ss不能使用了.经过一系列排查发现 Internet设置->连接选项卡->局域网(LAN)设置 某些设置由系统管理员进行管理,如上图. 修改注册表值HKEY_LOCAL_MAC ...
- 查询linux发行版本号方法总结
了解Linux发行版本的版本号是一项非常重要的事情,大多数软件对系统的版本都有要求,发行版本号与软件不匹配,软件将无法安装或者无法使用.这边集合市面上流行的Linux发行版本版本号查询方法.有了这 ...