ArrayList集合遍历的七种方式
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Ergodic {
public static void main(String[] args) {
System.out.println("ArrayList集合的遍历");
List list = new ArrayList();
list.add(1);
list.add(2);
System.out.println("1.for循环:");
for(int i = 0; i<list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("2.foreach循环:");
for(Object l : list) {
System.out.println(l);
}
System.out.println("3.链表变为数组内容后遍历:");
Integer[] inteArray = new Integer[list.size()];
list.toArray(inteArray);
for(int inte : inteArray) {
System.out.println(inte);
}
System.out.println("4.while迭代器遍历:");
Iterator iterator1 = list.iterator();
while(iterator1.hasNext()) {// hasNext()方法:判断该指针所指位置是否有元素
System.out.println(iterator1.next());// next()方法:1.获取该指针指向的元素 2.并把指针指向下一个元素(即指针后移一位)
}
System.out.println("5.for迭代器遍历:");
//该处将while改为for循环遍历,可以当遍历完后便释放迭代器对象,更节省内存
for(Iterator iterator3 = list.iterator(); iterator3.hasNext() ;) {
System.out.println(iterator3.next());
}
System.out.println("6.1 ListIterator迭代器向后遍历:");
ListIterator iterator2 = list.listIterator();
while(iterator2.hasNext()) {// 将list集合先从头向后遍历,指针指向最后
System.out.println(iterator2.next());
}
System.out.println("6.2 ListIterator迭代器向前遍历");
while(iterator2.hasPrevious()) {// 将list集合从末尾先前遍历,指针指到第一个元素
System.out.println(iterator2.previous());
}
}
}
对于集合的遍历,推荐下面代码,节省内存.
for(Iterator iterator3 = list.iterator(); iterator3.hasNext() ;) {
System.out.println(iterator3.next());
}
还有对于集合的foreach遍历集合,其实就是反编译后就是上面的代码.若想节省内存还是推荐上面代码.
Java8可以使用Stream API来遍历集合
// List集合遍历的第八种方式
list.stream().forEach(System.out::println);
集合反编译代码
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: Ergodic.java
import java.io.PrintStream;
import java.util.*;
public class Ergodic
{
public Ergodic()
{
}
public static void main(String args[])
{
System.out.println("ArrayList集合的遍历");
List list = new ArrayList();
list.add(Integer.valueOf(1));
list.add(Integer.valueOf(2));
System.out.println("1.for循环:");
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
System.out.println("2.foreach循环:");
Object l;
for (Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(l))
l = iterator.next();
System.out.println("3.链表变为数组内容后遍历:");
Integer inteArray[] = new Integer[list.size()];
list.toArray(inteArray);
Integer ainteger[];
int j1 = (ainteger = inteArray).length;
for (int i1 = 0; i1 < j1; i1++)
{
int inte = ainteger[i1].intValue();
System.out.println(inte);
}
System.out.println("4.while迭代器遍历:");
for (Iterator iterator1 = list.iterator(); iterator1.hasNext(); System.out.println(iterator1.next()));
System.out.println("5.for迭代器遍历:");
for (Iterator iterator3 = list.iterator(); iterator3.hasNext(); System.out.println(iterator3.next()));
System.out.println("6.1 ListIterator迭代器向后遍历:");
ListIterator iterator2;
for (iterator2 = list.listIterator(); iterator2.hasNext(); System.out.println(iterator2.next()));
System.out.println("6.2 ListIterator迭代器向前遍历");
for (; iterator2.hasPrevious(); System.out.println(iterator2.previous()));
}
}
数组
System.out.println("数组的遍历");
int[] a = new int[] {1,2};
System.out.println("1.for循环:");
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
System.out.println("2.foreach循环:");
for(int b : a) {
System.out.println(b);
}
System.out.println("3.Arrays工具类:");
System.out.println(Arrays.toString(a));
数组反编译代码
System.out.println("数组的遍历");
int a[] = {
1, 2
};
System.out.println("1.for循环:");
for (int i = 0; i < a.length; i++)
System.out.println(a[i]);
System.out.println("2.foreach循环:");
int ai[];
int k = (ai = a).length;
for (int j = 0; j < k; j++)
{
int b = ai[j];
System.out.println(b);
}
System.out.println("3.Arrays工具类:");
System.out.println(Arrays.toString(a));