`

Vector遍历的通用实现

    博客分类:
  • Java
 
阅读更多
对于Vector,如果我们不用遍历,那么就要自己去写循环,也是从实现结果上来说是一样的。可能的实现如下:
Vector    v=  一个vector的实例。

For(int  i=0;i<v.size();i++){
{
       Object    obj=v.get(i);
}
       我们知道,如果自己想要实现遍历,只要实现Iterator接口,然后重载其三个方法就可以了。我的代码如下:
程序代码:

package org.zy.common.util;

import java.util.Iterator;
import java.util.Vector;

public class VectorIterator implements Iterator{
   
    private Vector v;
   
    private int currentIndex=0;
   
    public VectorIterator(){
       
    }
   
    public VectorIterator(Vector v){
        this.v=v;
    }   

    public boolean hasNext() {               
        if(this.currentIndex<this.v.size()){
            System.out.println("current index is :  "+this.currentIndex);
            return true;
        }else{
            System.out.println("out of the bound ");
        }
        return false;
    }

    public Object next() {           
        return this.v.get(this.currentIndex++);
    }

    public void remove() {
        this.v.remove(this.currentIndex);       
    }
   
   
    public static void main(String[] args){
        Vector v=new Vector();
        v.add(new String("aaa"));
        v.add(new String("bbb"));
        v.add(new String("ccc"));
        //System.out.println(v);
       
       
        Iterator iter=new VectorIterator(v);
        while(iter.hasNext()){
            String str=(String)iter.next();
            System.out.println(str);
        }
    }
   
}


上面的三个方法是我们需要自己重载的方法,main方法的部分是我们调用的过程。
以后我们在使用的时候,只需要把这个类导入我们的工程,或者打成jar的包导入工程,就可以使用了。
同样的道理,我们也可以自己去写一个数组Iterator的实现类来实现数组的遍历。

学会使用遍历器,可以为我们的使用带来很大的方便。
分享到:
评论

相关推荐

    C++课程小作业-STL容器与迭代器的实现路径-设计类vector容器myVector

    STL是高效的C++程序库,是大量类模板和函数...2、如何实现一个与之相匹配的迭代器myliterator,该迭代器能像vector的迭代器一样,可以用它来遍历或操作访问myVector中的对象。 本套代码包含代码实现部分和测试部分。

    C++_Iterator_迭代器_介绍

    迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。因为迭代器对所有的容器都适用,现代 C++ 程序更倾向于使用迭代器而不是下标操作访问容器...

    STL学习过程中的代码笔记

    使用容器可以方便地存储和管理数据,例如使用vector动态数组来存储元素,使用map实现键值对的映射关系等。此外,STL中的算法也让我受益匪浅。通过调用STL提供的算法函数,可以轻松地实现排序、查找、遍历等操作,极...

    传智播客扫地僧视频讲义源码

    16_通用链表库集成和测试 17_C提高课程_day05-day07_知识体系梳理_传智扫地僧 源码及文档 第二部分 C++基础目录 01_C++基础课程的安排和需要持之以恒的学习态度 02_简单的C++程序helloworld 03_用面向过程和面向...

    EssentialCpp

    分支 vscode(默认) vs2019 泡泡糖 BubbleSort冒泡排序算法 流 简单的文件读写练习 通用算法 2020.11.1:难! 2020.11.2:BUG修改完成!...遍历该vector,将内容显示到cout。然后利用泛型算法sort(),

    超级有影响力霸气的Java面试题大全文档

    通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 11、EJB是基于哪些技术实现的?并说出...

    java 面试题 总结

    通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8、EJB是基于哪些技术实现的?并说出Session...

    JAVA面试题最全集

    IS09000和CMM(软件能力成熟度模型)认证是国际上通用的软件质量评估方法.CMM的五个成熟度等级。 第一,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再...

    二十三种设计模式【PDF版】

    直接使用 Iterator 进行对象遍历。 设计模式之 Template(模板方法) 实际上向你介绍了为什么要使用 Java 抽象类,该模式原理简单,使用很普遍. 设计模式之 Strategy(策略) 不同算法各自封装,用户端可随意挑选需要的...

    leetcode分类-algorithm-pattern-cpp8:C++版算法模式

    这个模板主要是介绍了一些通用的刷题模板,以及一些常见问题,如到底要刷多少题,按什么顺序来刷题,如何提高刷题效率等:dog_face:~。 核心内容 入门篇 :dog_face: 数据结构篇 :rabbit_face: 基础算法篇 :cow_face: ...

    C++STL程序员开发指南【可搜索+可编辑】

    1-3-2 在派生类中实现类的基本函数,................... _ ............... 29 1-3-3 内联函数技术,........ ................................... 30 3133 ..... .. .. .. .. .. .. .. .. .. .. .. .. .....

Global site tag (gtag.js) - Google Analytics