案例讲解

迭代模式

不暴露集合的内部结构,又让外部访问集合中的数据

package com.day1;

public interface Iterator <T>{
public boolean hasNEXT();//判断是否有下一个元素
public T next();//获取下一个元素的内容 }
package com.day1;

public class MyIterator<T> implements Iterator<T> {
private List<T> list=null;
private int index=0;//访问到容器中数据的当前下标
//创建一个迭代器对象的时候接受要被迭代的具体的容器对象
public MyIterator(List <T>list) {
this.list = list; }
//判断是否有下一个元素
@Override
public boolean hasNEXT() {
return index<list.size();
} //取出下一个元素
@Override
public T next() {
return list.get(index++);
} }
package com.day1;

public interface List<T> {
public void add(T obj);//给具体容器添加元素
public T get(int index);;//获取指定位置上的元素
public int size();//获得容器中的元素个数
public Iterator<T> iterator();//得到具体的迭代器对象 }
package com.day1;

public class ArrayList<T> implements List<T> {
private Object[] obj=null;//声明一个Object类型的数组
private int index;//数组的下标
private int size;//记录数组元素中的个数 public ArrayList() {
obj=new Object[10];
index=0;
size=0;
} @Override
public void add(T obj) {
this.obj[index++]=obj;//把数据存放到数组中
size++;//元素的个数加1
}
@SuppressWarnings("unchecked")
@Override
public T get(int index) { return (T) this.obj[index];
} @Override
public int size() { return size;
} @Override
public Iterator<T> iterator() { return new MyIterator<>(this);
} }
package com.day1;

public class Test {
public static void main(String[] args) {
List<String> nameList=new ArrayList<String>();
nameList.add("张三");
nameList.add("李四");
nameList.add("王五");
Iterator<String> it=nameList.iterator();
while(it.hasNEXT()) {
System.out.println(it.next());
}
}
}

List容器案例的更多相关文章

  1. 在kubernetes运行一个容器案例

    1. 检查kubernetes 组件是否正常运行. [root@c720120 ~]# kubectl get cs NAME                 STATUS    MESSAGE    ...

  2. Docker容器案例:应用 Mysql

    原创 杜亦舒   前阶段体验 Mysql 的新版本 5.7.13,由于机器里已经有 Mysql了,再安装另一个版本会有一些麻烦,为了简单,便使用 Docker 容器来安装 可能有人会认为没必要,在一台 ...

  3. Map容器案例

    案例讲解  --统计字符串出现的次数 package com.date; import java.util.HashMap; import java.util.Map; import java.uti ...

  4. windows container (docker) 容器资料笔记

    背景 业务需求:简化公司私有云,公有云的部署,尝试寻找更好的,更优化的技术方案替换现有的虚拟机部署方案. 技术背景: .net Docker 学习资料 Docker中文社区: http://www.d ...

  5. C++进阶 STL(1) 第一天 [容器,算法,迭代器] string容器 vector容器 deque容器

    课程大纲 02实现基本原理 容器,算法,迭代器 教室:容器 人:元素 教室对于楼:容器 序列式容器: 容器元素在容器中的位置是由进入容器的时间和地点来决定 序列式容器 关联式容器: 教室中 按年龄排座 ...

  6. Spring 框架基础(03):核心思想 IOC 说明,案例演示

    本文源码:GitHub·点这里 || GitEE·点这里 一.IOC控制反转 1.IOC容器思想 Java系统中对象耦合关系十分复杂,系统的各模块之间依赖,微服务模块之间的相互调用请求,都是这个道理. ...

  7. 《Spring 手撸专栏》第 2 章:小试牛刀(让新手能懂),实现一个简单的Bean容器

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 上学时,老师总说:不会你就问,但多数时候都不知道要问什么! 你总会在小傅哥的文章前言 ...

  8. centos7 docker安装详解

    查看内核和操作系统版本[root@prod3 ~]# uname -r3.10.0-327.el7.x86_64[root@prod3 ~]# cat /etc/redhat-release Cent ...

  9. 【实战分享】又拍云 OpenResty / Nginx 服务优化实践

    2018 年 11 月 17 日,由 OpenResty 主办的 OpenResty Con 2018 在杭州举行.本次 OpenResty Con 的主题涉及 OpenResty 的新开源特性.业界 ...

随机推荐

  1. Python+Django+Ansible Playbook自动化运维项目实战

    Python+Django+AnsiblePlaybook自动化运维项目实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单 ...

  2. Hadoop生态系统概况(转)图文并茂说的不错

    Hadoop是一个能够对大量数据进行分布式处理的软件框架.具有可靠.高效.可伸缩的特点. Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN. 下图为hadoop的生态 ...

  3. java 集合存储对象且根据对象属性排序

    方法一:根据java1.8lambda表达式进行排序 Comparator<RateInfo> comparator = (t1, t2) -> t1.getRateCode().c ...

  4. springcloud:RPC和HTTP

    1.RPC和HTTP 无论是微服务还是SOA,都面临着服务间的远程调用.那么服务间的远程调用方式有哪些呢? 常见的远程调用方式有以下2种: RPC:Remote Produce Call远程过程调用, ...

  5. Vuejs实战项目三:退出系统功能实现

    1.创建Mockjs接口 method:post url:/user/logout 描述:退出系统 response: { "code": 2000, //状态码 "fl ...

  6. springmvc:入门环境搭建

    引入依赖(pom.xml): <!-- 版本锁定 --> <properties> <spring.version>5.0.2.RELEASE</spring ...

  7. Leetcode475.Heaters供暖器

    冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径. 所以,你的输入将会是房屋和供暖器的位置. ...

  8. hdu1233还是畅通工程

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  9. Tr A HDU 1575 (矩阵快速幂)

    #include<iostream> #include<vector> #include<string> #include<cmath> #includ ...

  10. hibernate 查询最大值(数据条目数)

    如下 使用 SELECT COUNT(*) 然后获取最大值 Integer.parseInt(query.list().).toString()); 比如 StringBuffer hql1; hql ...