- 浏览: 135154 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 1499【转载】一提起位运算,人们往往想到它的高效性,无论是嵌入式编程 ... -
java导出csv用excel打开后数字不用科学计数法显示
2011-08-15 14:27 22154最近写了一个生成csv的程序,生成的csv其中有一列数字长度 ... -
java生成xml文件的时候如何控制xml的缩进格式
2011-07-26 16:22 1137使用java自带的xml api生 ... -
java读取配置文件的几种方法
2011-07-21 12:17 748java读取配置文件的几种方法 在现实工 ... -
正则表达式语法
2011-07-18 10:52 726一个正则表达式就是 ... -
CSDN上看到的一篇有关Spring JDBC事务管理的文章(内容比较全)
2011-07-08 16:18 1100JDBC事务管理 Spring提供编程式的事务管理(Progr ... -
Spring:JdbcTemplate使用指南
2011-07-07 21:35 1027前言: 本文指在介绍 Spring 框架 ... -
Java DATE 工具类
2011-07-05 12:18 2403public class DateUtil { / ... -
java中取小数点后两位(四种方法)
2011-07-01 16:33 1811一 Long是长整型,怎么有小数,是double吧 ... -
Java正则表达式(一)
2011-06-30 20:14 867正则表达式在处理文本方面用处非常大,最早像在Perl和awk语 ... -
Java正则表达式(二)
2011-06-30 20:13 1006Matcher类: 使用Matcher类,最重要的一个概念必须 ... -
DBUnit入门
2011-04-28 15:55 795相信做过单元测试的人都会对JUnit非常的熟悉了,今天要介绍的 ... -
一些经典算法题目
2011-02-03 21:28 8941.写一个方法,用一个fo ... -
求最大子序列和问题的最优算法
2010-12-17 19:42 885//求最大子序列和问题, public class ... -
Java UDP通信(DatagramPacket类、DatagramSocket类、InetAddress类)
2010-11-30 22:16 1489一、DatagramPacket类: 如果把Datagram ... -
Java向服务器发送POST请求
2010-10-30 19:06 2438public String sendToServer(Stri ... -
Java发送Http请求,解析html返回
2010-10-30 18:53 2060首先,向一个Web站点发送POST请求只需要简单的几步: 注 ... -
Struts1和Struts2的区别和对比
2010-10-30 13:23 8731.Action 类: • Struts1要求Action类 ... -
java.net.URL的URL构建方式
2010-10-30 13:21 880Tag:java.net.URL URL构建方式 ... -
Http和Socket连接区别
2010-10-27 11:58 812Http和Socket连接区别 1、 ...
相关推荐
`vector`的遍历是C++程序员日常开发中的常见操作,了解不同的遍历方式有助于编写更加高效和可读的代码。本文将详细探讨C++ `vector`的几种遍历方式。 ### 1. 常规for循环遍历 这是最基础的遍历方式,通过索引来...
5. **迭代器**:虽然不强制要求,但为了提高可读性和兼容性,可以考虑实现迭代器接口,允许用户通过迭代器遍历`Vector`中的元素。 在`Vector.cpp`和`Vector.h`文件中,`Vector`类的实现可能会包含这些成员函数的...
本文将深入探讨如何使用C++模板来实现这两种遍历算法,并结合邻接矩阵表示图。 首先,我们需要理解邻接矩阵的表示方法。邻接矩阵是一个二维数组,其中的元素表示图中节点之间的连接。如果节点i和节点j之间有边,...
使用`for`循环遍历`vector`。为了处理奇数个元素的情况,我们需要在循环中进行条件判断。 3. **条件判断与输出**: - 当`index + 1 ()`时,表示当前元素后面还有下一个元素,此时可以计算这两个元素的和并输出。 ...
Markov算法是一种基于概率模型...通过使用C++的`vector`和`map`,我们可以高效地处理大量数据,并实现文本生成。这种方法不仅适用于文本生成,还可以应用于音乐创作、代码生成等多个领域,展现了强大的通用性和创造性。
STL是高效的C++程序库,是大量类模板和函数...2、如何实现一个与之相匹配的迭代器myliterator,该迭代器能像vector的迭代器一样,可以用它来遍历或操作访问myVector中的对象。 本套代码包含代码实现部分和测试部分。
遍历vector容器可以采用不同的方法,比如使用迭代器显式进行循环遍历,也可以使用STL提供的算法函数for_each来遍历容器并执行指定操作。for_each函数接受容器的开始和结束迭代器以及一个操作函数,每访问到一个元素...
接下来,我们将详细介绍几种常见的通用算法,并给出具体的C语言实现示例。 #### 查找算法 查找算法是计算机科学中最基础的算法之一。它用于从一组数据中找出满足特定条件的数据项。其中,“find_if”是一种常用的...
在实际编程实现时,可以考虑使用STL中的`list`容器来方便地管理链表,同时使用递归和迭代两种方法实现遍历和插入操作,以提高代码的可读性和通用性。在`Cpp1`文件中,应该包含了具体的实现细节,包括类定义、成员...
- **意义**: 这种快速访问能力使得`vector`在处理需要频繁读取元素的应用场景时表现出色,例如在实现缓存或者数据查询功能时。 **3. 迭代器** - **定义**: `vector`提供了一种名为迭代器(iterator)的机制,它...
这个名为“通用的C++数据结构代码实现.zip”的压缩包很可能包含了一系列常见数据结构的C++实现,如数组、链表、栈、队列、树、图、哈希表等。下面将详细介绍这些数据结构及其在C++中的实现方法。 1. **数组**:数组...
标题中提到的"一个通用的C语言编写的类似STL功能的集合库",是针对C语言的一个扩展,它尝试模仿STL的模式,为C程序员提供了一套容器和算法的实现。这样的库对于初学者来说是非常有价值的,因为它不仅能够帮助他们...
vector的操作包括初始化、插入、删除、访问、遍历等。例如,你可以使用`push_back()`向vector末尾添加元素,使用`at()`安全地访问元素,使用`size()`获取元素数量。 2. **list**:list是一个双向链表容器,它支持...
C++标准库为每种标准容器定义了一种迭代器类型,这些迭代器类型提供了比简单的下标操作更为通用的方法来访问容器元素。尽管`vector`支持下标操作,但在现代C++编程实践中,更倾向于使用迭代器来访问元素,以确保代码...
迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。因为迭代器对所有的容器都适用,现代 C++ 程序更倾向于使用迭代器而不是下标操作访问容器...
6. **测试代码**:在提供的`test_vector.m`文件中,可能包含了对上述概念的实践应用,例如创建动态数组、添加元素、遍历和操作数组等内容,可以作为学习和理解MATLAB中STL`vector`模仿的一个实例。 通过以上方式,...
3. **添加元素**:Vector提供了`addElement()`方法来添加元素,但在现代Java编程中,通常建议使用`add()`方法,因为`add()`方法更通用,可以接受泛型参数。 4. **获取元素**:Vector提供了`elementAt(int index)`...
1. 容器(Containers):如vector(动态数组)、list(双向链表)、deque(双端队列)、set(集合,基于红黑树实现)、map(映射,基于红黑树实现)等,它们是存储对象的模板类。 2. 迭代器(Iterators):用于在...