迭代器使用

迭代器使用

通常情况下,希望遍历一个集合中的元素。例如,显示集合中的每个元素。

一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口。

迭代器,使你能够通过循环来得到或删除集合的元素。ListIterator 继承了Iterator,以允许双向遍历列表和修改元素。
序号
迭代器方法描述
1 使用 Java Iterator
这里通过实例列出Iterator和listIterator接口提供的所有方法。

  1. 遍历 ArrayList

public class Test{
 public static void main(String[] args) {
     List<String> list=new ArrayList<String>();
     list.add("Hello");
     list.add("World");
     list.add("HAHAHAHA");
     //第一种遍历方法使用foreach遍历List
     for (String str : list) {            //也可以改写for(int i=0;i<list.size();i++)这种形式
        System.out.println(str);
     }

     //第二种遍历,把链表变为数组相关的内容进行遍历
     String[] strArray=new String[list.size()];
     list.toArray(strArray);
     for(int i=0;i<strArray.length;i++) //这里也可以改写为  foreach(String str:strArray)这种形式
     {
        System.out.println(strArray[i]);
     }

    //第三种遍历 使用迭代器进行相关遍历

     Iterator<String> ite=list.iterator();
     while(ite.hasNext())//判断下一个元素之后有值
     {
         System.out.println(ite.next());
     }
 }
}

解析:

三种方法都是用来遍历ArrayList集合,第三种方法是采用迭代器的方法,该方法可以不用担心在遍历的过程中
会超出集合的长度。

QList是Qt框架中的一个模板类,用于存储序列数据,类似于C++标准模板库(STL)中的list容器。QList提供了多种方法来访问其元素,迭代器是其中一种有效的方式。 QList的迭代器使用类似于STL迭代器的风格,提供了`begin()`和`end()`方法来获取指向列表首元素和尾元素之后位置的迭代器迭代器支持递增(`++`)操作来移动到下一个元素,支持解引用操作符(`*`)来访问当前元素的值。 以下是一个简单的使用QList迭代器的例子: ```cpp #include <QList> #include <QDebug> int main() { QList<int> list; list << 1 << 2 << 3 << 4 << 5; // 获取指向首元素的迭代器 QList<int>::const_iterator i = list.constBegin(); // 获取指向尾元素之后位置的迭代器 QList<int>::const_iterator end = list.constEnd(); // 遍历QList中的所有元素 while (i != end) { qDebug() << *i; // 输出当前元素的值 ++i; // 移动迭代器到下一个元素 } return 0; } ``` 在上述代码中,我们首先创建了一个QList<int>的实例,并初始化了一些整数元素。然后,我们使用`list.constBegin()`获取了一个指向列表首元素的常量迭代器,`list.constEnd()`则指向了列表尾元素之后的位置。通过一个while循环和递增操作,我们迭代了列表中的每个元素,并使用`qDebug()`函数输出了每个元素的值。 需要注意的是,QList的迭代器是双向迭代器,意味着它支持递增和递减操作。此外,QList还提供了非const版本的迭代器,允许修改元素的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值