zoukankan      html  css  js  c++  java
  • STL中的几种迭代器的使用

    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[]取值

  • 相关阅读:
    extjs__(grid Panel绑定数据)
    web项目中对post请求乱码处理
    lucene之Field属性的解释
    spring整合mybatis框架
    jasperreports实现pdf文档的生成
    ireport图形化界面生成pdf文档
    iText框架(生成pdf文档)
    spring配置问题
    动手实践PHP7的HashTable
    基于epoll实现一个IO多路复用的回声服务器
  • 原文地址:https://www.cnblogs.com/wjy0928/p/10885960.html
Copyright © 2011-2022 走看看