首页 > 其他 > 详细

STL中的几种迭代器的使用

时间:2019-05-18 15:55:09      阅读:91      评论:0      收藏:0      [点我收藏+]

package com.zking.JEEE;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class Temp {
public static void main(String[] args) throws Exception {
//定义一个ArrayList 集合
// ArrayList arr=new ArrayList();
// arr.add("a");
// arr.add("b");
// arr.add("c");
// arr.add("d");
// arr.add("e");
// System.out.println(arr.size());
// System.out.println("-------------//下标输出方式");
// for (int i = 0; i <arr.size(); i++) {
// System.out.println(arr.get(i));
// }
//
// System.out.println("-------------//foreach输出(》=jdk1.5)");
// for (Object object : arr) {
// System.out.println(object);
// }
//
// System.out.println("-------------//jdk1.8+的语法糖");
// arr.forEach(a->System.out.println(a));
//
// System.out.println("-------------//迭代器");
// Iterator it=arr.iterator();
// while (it.hasNext()) {
// System.out.println(it.next());
// }
// ArrayList arr=new ArrayList();
// for (int i = 0; i <20; i++) {
// print(arr);
// arr.add(i);
// }
ArrayList arr=new ArrayList();
arr.add("a");
arr.add("b");
arr.add("c");
arr.add("d");
arr.add("e");
ListIterator list =arr.listIterator();
System.out.println("//向下的读取hasNext");
while(list.hasNext()) {
System.out.println(list.next());
}
System.out.println("//向上的读取hasPrevious");
while(list.hasPrevious()) {
System.out.println(list.previous());
}
}

// 使用反射查看属性

// ArrayList默认长度10当长度为10时,增长因子为0.5倍,向下取整
static void print(ArrayList arraylist) throws Exception {
Class c = arraylist.getClass();
Field elementData = c.getDeclaredField("elementData");
elementData.setAccessible(true);
Object[] arr = (Object[]) elementData.get(arraylist);
System.out.println("elementData.length=" + arr.length);
}
}

 

说明:

(一)Collection接口
1,集合框架的顶级接口
2,是Set和List的父接口
3,但不是Map的父接口

(二)List接口
1,特点:有序、对象可以重复
2,遍历方式
a,下标
b,foreach(>=jdk1.5)
c,迭代器Iterator

1)读取下一个记录
A.hasNext()是否存在下一个记录
B.Next()取值

2)读取上一个记录(ListIterator)
A.hasPrevious()是否存在上一个记录
B.Previous[]取值

 

STL中的几种迭代器的使用

原文:https://www.cnblogs.com/wjy0928/p/10885960.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!