java设计模式之迭代器
时间:2021-08-19
本文章向大家介绍java设计模式之迭代器,主要包括java设计模式之迭代器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Jdk里最不缺得就是迭代器,自己写一个,加深下理解
public class CustomList<T> implements Iterable<T> { private final Object[] items = new Object[20]; private int size = 0; public void add(T t) { items[size] = t; size++; } public T get(int index) { return (T) items[index]; } public T remove(int index) { if (index > size - 1 || index < 0) { throw new ArrayIndexOutOfBoundsException("下标越界"); } T r = (T) items[index]; for (int i = index; i < size - 1; i++) { items[i] = items[i + 1]; } items[--size] = null; return r; } /** * 正向迭代 * * @return */ public Iterator<T> iterator() { return new Iterator<T>() { int index = 0; @Override public boolean hasNext() { return index < size; } @Override public T next() { return (T) items[index++]; } }; } /** * 反向迭代 * * @return */ public Iterator<T> reverseIterator() { return new Iterator<T>() { int index = size - 1; @Override public boolean hasNext() { return index >= 0; } @Override public T next() { return (T) items[index--]; } }; } @Override public String toString() { return "CustomList{" + "items=" + Arrays.toString(items) + ", size=" + size + '}'; } public static void main(String[] args) { CustomList<Integer> list = new CustomList<>(); for (int i = 0; i < 10; i++) { list.add(i); } Iterator<Integer> iterator = list.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + ","); } System.out.println(); Iterator<Integer> reverseIterator = list.reverseIterator(); while (reverseIterator.hasNext()) { System.out.print(reverseIterator.next() + ","); } } }
原文地址:https://www.cnblogs.com/wangbin2188/p/15162832.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- R语言进阶之生存分析
- R In Action |基本数据管理
- R|apply,tapply
- python中的基本运算
- 助力联邦——Pulsar在Angel PowerFL联邦学习平台中的应用
- 让数据跃然“图”上!腾讯位置服务数据可视化API正式发布
- 腾讯云 Serverless 衔接 Kafka 上下游数据流转实战
- Tensorflow 测试一段能运行在 GPU 的代码
- Tensorflow on HDFS 的实践
- MPI on Kubernetes
- Tensorflow Serving模型指向s3地址,Could not find base path?
- Python之turtle模块初体验
- tcsetpgrp failed重新编译tini
- s3cmd ls之迷惑
- 构建pyflink镜像