List 是針對特定類型、任意長度的。
Array 是針對任意類型、固定長度的。
ArrayList 是針對任意類型、任意長度的。
Array 和 ArrayList 是通過存儲 object 實現任意類型的,所以使用時要轉換。
package com.endless
import java.util.ArrayList
import java.util.Collections
import java.util.ListIterator
public class List {
static ArrayList<Integer> arra
public static void main(String[] args) {
ArrayList<Integer> array = new ArrayList<Integer>()
arra = array
Collections.addAll(array, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
System.out.println("最初的集合array" + array)
System.out.println("轉化爲全局變量的集合arra" + arra)
System.out.println("獲取前兩個一個元素 " + array.get(0) + array.get(1))
ListIterator<Integer> iter = array.listIterator()
System.out.println("是否具有下一個元素 " + iter.hasNext())
System.out.println("是否具有前一個元素 " + iter.hasPrevious())
System.out.println("獲得集合下一個元素 " + iter.next())
System.out.println("獲得集合前一個元素 " + iter.previous())
System.out.println("獲得下一個元素的索引 " + iter.nextIndex())
System.out.println("獲得前一個元素的索引 " + iter.previousIndex())
System.out.println("向集合末尾追加元素11並返回是否成功 " + array.add(11) + "\n" + array)
array.listIterator().add(12)
System.out.println("向集合開頭插入元素12\n" + array)
System.out.println("刪除一個元素並返回其內容: " + array.remove(0) + "\n" + array)
System.out.println("修改一個元素並返回未修改之前的內容: " + array.set(0, 11) + "\n" + array)
System.out.println(ass())
System.out.println("arra與array使用同一塊內存 \n" + arra + "\n" + array)
System.out.println("array長度\n" +array.size())
}
public static int ass() {
arra.add(12)
return arra.get(0)
}
}
各種遍歷方式
import java.util.ArrayList;
import java.util.ListIterator;
import java.util.Random;
public class aaa {
public static void main(String[] args) throws InterruptedException {
ArrayList<Integer> arr =new ArrayList<Integer>();
for(int i=1;i<=9;i++){
arr.add(new Random().nextInt(100));
}
System.out.println(arr);
System.out.println(arr.get(1));
arr.forEach(x->System.out.println(x));
arr.iterator().forEachRemaining(x->System.out.println(x));
arr.listIterator().forEachRemaining(x->System.out.println(x));
for(int xx:arr){
System.out.println(xx);
}
for(int i=0 ;i<arr.size();i++){
System.out.println(arr.get(i));
}
ListIterator<Integer> list = arr.listIterator();
for(;list.hasNext();){
System.out.println(list.next());
}
int x = 0;
while (x < array.size()) {
System.out.println(array.get(x++ % array.size()));
}
ListIterator<Integer> list2 = arr.listIterator();
for(list2.hasNext();;){
System.out.println(list2.next());
if (!list2.hasNext()){
break;
}
}
ListIterator<Integer> list1 = arr.listIterator();
while(list1.hasNext()){
System.out.println(list1.next());
}
}}