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));