学习笔记

arrayList集合的读取方式
package com.temp;

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

public class Test {

    public static void main(String[] args) throws Exception {

        ArrayList arr = new ArrayList();
        // 插入数据
        for (int i = 0; i < 10; i++) {
            arr.add(i);
        }
        // 下标输出方式
        for (int i = 0; i < arr.size(); i++) {
            System.out.println(arr.get(i));
        }

        // foreach输出方式

        for (Object o : arr) {
            System.out.println(o);
        }
        // jdk1.8语法糖
        arr.forEach(a -> System.out.println(a));

        // 迭代器
        Iterator it = arr.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }

        ListIterator list = arr.listIterator();

        // 向上读取
        while (list.hasNext()) {
            System.out.println(list.next());
        }

        // 向下读取
        while (list.hasPrevious()) {
            System.out.println(list.previous());
        }

        // 向上取整(要先向下读取才能向上读取)
        ArrayList myarr = new ArrayList();
        for (int i = 0; i < 20; i++) {
            print(myarr);
            myarr.add(i);
        }

    }

    static void print(ArrayList arraylist) throws Exception {
        // TODO Auto-generated method stub
        Class c = arraylist.getClass();
        Field elementData = c.getDeclaredField("elementData");
        elementData.setAccessible(true);
        Object[] objects = (Object[]) elementData.get(arraylist);
        System.out.println(objects.length);
    }
}
 
原文地址:https://www.cnblogs.com/huxiaocong/p/10892065.html