`

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++ Vector遍历的几种方式

    `vector`的遍历是C++程序员日常开发中的常见操作,了解不同的遍历方式有助于编写更加高效和可读的代码。本文将详细探讨C++ `vector`的几种遍历方式。 ### 1. 常规for循环遍历 这是最基础的遍历方式,通过索引来...

    自己实现vector不使用泛型

    5. **迭代器**:虽然不强制要求,但为了提高可读性和兼容性,可以考虑实现迭代器接口,允许用户通过迭代器遍历`Vector`中的元素。 在`Vector.cpp`和`Vector.h`文件中,`Vector`类的实现可能会包含这些成员函数的...

    C++模板实现的图的遍历算法

    本文将深入探讨如何使用C++模板来实现这两种遍历算法,并结合邻接矩阵表示图。 首先,我们需要理解邻接矩阵的表示方法。邻接矩阵是一个二维数组,其中的元素表示图中节点之间的连接。如果节点i和节点j之间有边,...

    对一组vector对象,计算相邻元素的和

    使用`for`循环遍历`vector`。为了处理奇数个元素的情况,我们需要在循环中进行条件判断。 3. **条件判断与输出**: - 当`index + 1 ()`时,表示当前元素后面还有下一个元素,此时可以计算这两个元素的和并输出。 ...

    利用Markov算法根据原始文本的统计规律生成随机文本,利用容器vector, map实现。包含详细的注释和测试数据.rar

    Markov算法是一种基于概率模型...通过使用C++的`vector`和`map`,我们可以高效地处理大量数据,并实现文本生成。这种方法不仅适用于文本生成,还可以应用于音乐创作、代码生成等多个领域,展现了强大的通用性和创造性。

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

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

    STL标准模板库vector容器

    遍历vector容器可以采用不同的方法,比如使用迭代器显式进行循环遍历,也可以使用STL提供的算法函数for_each来遍历容器并执行指定操作。for_each函数接受容器的开始和结束迭代器以及一个操作函数,每访问到一个元素...

    C语言里的通用算法介绍

    接下来,我们将详细介绍几种常见的通用算法,并给出具体的C语言实现示例。 #### 查找算法 查找算法是计算机科学中最基础的算法之一。它用于从一组数据中找出满足特定条件的数据项。其中,“find_if”是一种常用的...

    二叉树基本操作设计及实现

    在实际编程实现时,可以考虑使用STL中的`list`容器来方便地管理链表,同时使用递归和迭代两种方法实现遍历和插入操作,以提高代码的可读性和通用性。在`Cpp1`文件中,应该包含了具体的实现细节,包括类定义、成员...

    vector的概要介绍与分析

    - **意义**: 这种快速访问能力使得`vector`在处理需要频繁读取元素的应用场景时表现出色,例如在实现缓存或者数据查询功能时。 **3. 迭代器** - **定义**: `vector`提供了一种名为迭代器(iterator)的机制,它...

    通用的C++数据结构代码实现.zip

    这个名为“通用的C++数据结构代码实现.zip”的压缩包很可能包含了一系列常见数据结构的C++实现,如数组、链表、栈、队列、树、图、哈希表等。下面将详细介绍这些数据结构及其在C++中的实现方法。 1. **数组**:数组...

    一个通用的C语言编写的类似STL功能的集合库,实现比较简单,通用性比较强.zip

    标题中提到的"一个通用的C语言编写的类似STL功能的集合库",是针对C语言的一个扩展,它尝试模仿STL的模式,为C程序员提供了一套容器和算法的实现。这样的库对于初学者来说是非常有价值的,因为它不仅能够帮助他们...

    STL讲义其中包含部分有: vector list map,还有一些例子

    vector的操作包括初始化、插入、删除、访问、遍历等。例如,你可以使用`push_back()`向vector末尾添加元素,使用`at()`安全地访问元素,使用`size()`获取元素数量。 2. **list**:list是一个双向链表容器,它支持...

    Vector用 法 简 述

    C++标准库为每种标准容器定义了一种迭代器类型,这些迭代器类型提供了比简单的下标操作更为通用的方法来访问容器元素。尽管`vector`支持下标操作,但在现代C++编程实践中,更倾向于使用迭代器来访问元素,以确保代码...

    C++_Iterator_迭代器_介绍

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

    STL vector:在Matlab中对STL vector容器的模仿。-matlab开发

    6. **测试代码**:在提供的`test_vector.m`文件中,可能包含了对上述概念的实践应用,例如创建动态数组、添加元素、遍历和操作数组等内容,可以作为学习和理解MATLAB中STL`vector`模仿的一个实例。 通过以上方式,...

    Java Vector类详解及实例代码

    3. **添加元素**:Vector提供了`addElement()`方法来添加元素,但在现代Java编程中,通常建议使用`add()`方法,因为`add()`方法更通用,可以接受泛型参数。 4. **获取元素**:Vector提供了`elementAt(int index)`...

    C 语言版的stl简单实现

    1. 容器(Containers):如vector(动态数组)、list(双向链表)、deque(双端队列)、set(集合,基于红黑树实现)、map(映射,基于红黑树实现)等,它们是存储对象的模板类。 2. 迭代器(Iterators):用于在...

Global site tag (gtag.js) - Google Analytics