- 浏览: 131047 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (84)
- Java (30)
- C/C++ (3)
- Linux (1)
- 数据库 (19)
- 搜索引擎 (1)
- 数据结构 (2)
- 杂七杂八 (4)
- WEB前端 (6)
- Spring (2)
- JavaScript (9)
- DHTMLX (3)
- 正则表达式 (1)
- JQuery (1)
- Report (2)
- PDF (2)
- Word (0)
- Excel (0)
- CSV (0)
- Test & QA (1)
- BI (Business Intelligence) (10)
- SQL (18)
- SAP Business Object (0)
- DataStage (3)
- CI (Continuous Integration) (1)
- Algorith (3)
- Portal (1)
- Struts (1)
- Oracle (9)
- MS SQL Server (3)
- Teradata (3)
- MySql (1)
- Data Warehouse (5)
- ETL (8)
对于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的实现类来实现数组的遍历。
学会使用遍历器,可以为我们的使用带来很大的方便。
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的实现类来实现数组的遍历。
学会使用遍历器,可以为我们的使用带来很大的方便。
发表评论
-
优秀程序员不得不知道的20个位运算技巧 【转】
2012-12-14 11:19 1454【转载】一提起位运算,人们往往想到它的高效性,无论是嵌入式编程 ... -
java导出csv用excel打开后数字不用科学计数法显示
2011-08-15 14:27 21912最近写了一个生成csv的程序,生成的csv其中有一列数字长度 ... -
java生成xml文件的时候如何控制xml的缩进格式
2011-07-26 16:22 1084使用java自带的xml api生 ... -
java读取配置文件的几种方法
2011-07-21 12:17 714java读取配置文件的几种方法 在现实工 ... -
正则表达式语法
2011-07-18 10:52 690一个正则表达式就是 ... -
CSDN上看到的一篇有关Spring JDBC事务管理的文章(内容比较全)
2011-07-08 16:18 1069JDBC事务管理 Spring提供编程式的事务管理(Progr ... -
Spring:JdbcTemplate使用指南
2011-07-07 21:35 981前言: 本文指在介绍 Spring 框架 ... -
Java DATE 工具类
2011-07-05 12:18 2359public class DateUtil { / ... -
java中取小数点后两位(四种方法)
2011-07-01 16:33 1768一 Long是长整型,怎么有小数,是double吧 ... -
Java正则表达式(一)
2011-06-30 20:14 832正则表达式在处理文本方面用处非常大,最早像在Perl和awk语 ... -
Java正则表达式(二)
2011-06-30 20:13 960Matcher类: 使用Matcher类,最重要的一个概念必须 ... -
DBUnit入门
2011-04-28 15:55 758相信做过单元测试的人都会对JUnit非常的熟悉了,今天要介绍的 ... -
一些经典算法题目
2011-02-03 21:28 8581.写一个方法,用一个fo ... -
求最大子序列和问题的最优算法
2010-12-17 19:42 845//求最大子序列和问题, public class ... -
Java UDP通信(DatagramPacket类、DatagramSocket类、InetAddress类)
2010-11-30 22:16 1446一、DatagramPacket类: 如果把Datagram ... -
Java向服务器发送POST请求
2010-10-30 19:06 2396public String sendToServer(Stri ... -
Java发送Http请求,解析html返回
2010-10-30 18:53 2008首先,向一个Web站点发送POST请求只需要简单的几步: 注 ... -
Struts1和Struts2的区别和对比
2010-10-30 13:23 8241.Action 类: • Struts1要求Action类 ... -
java.net.URL的URL构建方式
2010-10-30 13:21 842Tag:java.net.URL URL构建方式 ... -
Http和Socket连接区别
2010-10-27 11:58 763Http和Socket连接区别 1、 ...
相关推荐
STL是高效的C++程序库,是大量类模板和函数...2、如何实现一个与之相匹配的迭代器myliterator,该迭代器能像vector的迭代器一样,可以用它来遍历或操作访问myVector中的对象。 本套代码包含代码实现部分和测试部分。
迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。因为迭代器对所有的容器都适用,现代 C++ 程序更倾向于使用迭代器而不是下标操作访问容器...
使用容器可以方便地存储和管理数据,例如使用vector动态数组来存储元素,使用map实现键值对的映射关系等。此外,STL中的算法也让我受益匪浅。通过调用STL提供的算法函数,可以轻松地实现排序、查找、遍历等操作,极...
16_通用链表库集成和测试 17_C提高课程_day05-day07_知识体系梳理_传智扫地僧 源码及文档 第二部分 C++基础目录 01_C++基础课程的安排和需要持之以恒的学习态度 02_简单的C++程序helloworld 03_用面向过程和面向...
分支 vscode(默认) vs2019 泡泡糖 BubbleSort冒泡排序算法 流 简单的文件读写练习 通用算法 2020.11.1:难! 2020.11.2:BUG修改完成!...遍历该vector,将内容显示到cout。然后利用泛型算法sort(),
通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 11、EJB是基于哪些技术实现的?并说出...
通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8、EJB是基于哪些技术实现的?并说出Session...
IS09000和CMM(软件能力成熟度模型)认证是国际上通用的软件质量评估方法.CMM的五个成熟度等级。 第一,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再...
直接使用 Iterator 进行对象遍历。 设计模式之 Template(模板方法) 实际上向你介绍了为什么要使用 Java 抽象类,该模式原理简单,使用很普遍. 设计模式之 Strategy(策略) 不同算法各自封装,用户端可随意挑选需要的...
这个模板主要是介绍了一些通用的刷题模板,以及一些常见问题,如到底要刷多少题,按什么顺序来刷题,如何提高刷题效率等:dog_face:~。 核心内容 入门篇 :dog_face: 数据结构篇 :rabbit_face: 基础算法篇 :cow_face: ...
1-3-2 在派生类中实现类的基本函数,................... _ ............... 29 1-3-3 内联函数技术,........ ................................... 30 3133 ..... .. .. .. .. .. .. .. .. .. .. .. .. .....