java中数组只能保存同一类对象,数组一旦在堆上new出,其长度是固定的不可改变,加上对其内容修改不易。
集类的产生来解决这些限制,可以存放不同类的对象,并且长度不受限制,是动态的。
集类拥有以下特性:1.集类框架是高性能的,对基本集类的实现四高效率的。2.这用框架允许不同类型的类集以相同的方式和高度
互操作方式工作。3.类集是容易扩展和修改的。
ArrayList类的add()方法:
1 import java.util.Collection; 2 import java.util.ArrayList; 3 4 public class CollectionTest { 5 public static void main(String[] args) { 6 Collection a1 = new ArrayList(); 7 ArrayList a2 = new ArrayList(); 8 Collection a3 = new ArrayList(); 9 10 a1.add("A"); 11 a1.add("B"); 12 a3.add("Hello Word"); 13 14 a2.add("A"); 15 a2.add("B"); 16 a2.add(0,"C"); 17 18 System.out.println(a1);//result:[A,B] 19 System.out.println(a2);//result:[C,A,B] 20 21 a1.addAll(a3); 22 a2.addAll(0,a3); 23 24 System.out.println(a1);//result:[A,B,Hello Word] 25 System.out.println(a2);//result:[Hello Word,C,A,B] 26 27 //a1.addAll(0,a3);错误 无法将 Collection 中的方法 addAll应用到给定类型。 28 } 29 } 30 31 /* 32 1.ArrayList类中存放的对象是有顺序的,可以用add(int index,E element)等指定位置的扩充方法。 33 34 */
ArrayList类的remove()方法:
1 import java.util.Collection; 2 import java.util.ArrayList; 3 4 public class Test { 5 public static void main(String[] args) { 6 ArrayList a1 = new ArrayList(); 7 8 a1.add("A"); 9 a1.add("B"); 10 a1.add("C"); 11 a1.add(0,"Word"); 12 a1.add(0,"Hello"); 13 14 System.out.println(a1);//[Hello,Word,A,B,C] 15 16 System.out.println(a1.remove(0));//Hello 17 System.out.println(a1);//[Word,A,B,C] 18 19 a1.remove("Word"); 20 a1.add("D"); 21 a1.add("E"); 22 a1.add("F"); 23 for (int i = 0;i < a1.size();i++) { 24 System.out.print(a1.get(i) + " "); 25 } 26 //A,B,C,D,E,F 27 System.out.println(" "); 28 } 29 }
ArrayList的其他方法示例:
1 import java.util.List; 2 import java.util.ArrayList; 3 4 public class Test { 5 public static void main(String[] args) { 6 List a1 = new ArrayList(); 7 List a2 = new ArrayList(); 8 List a3 = new ArrayList(); 9 a1.add("A"); 10 a1.add("B"); 11 a1.add("C"); 12 a1.add("Oracle"); 13 14 a2.add("A"); 15 a2.add("B"); 16 17 /* 18 add(E);sublist();set();indexOf();lastIndexOf();isEmpty();clear();contains();containAll(); 19 20 */ 21 22 System.out.println(a1);//[A,B,C,Oracle] 23 System.out.println(a2);//[A,B] 24 25 System.out.println(a1.contains("Oracle"));//true 26 System.out.println(a1.containsAll(a2));//true 27 System.out.println(a1.contains("Oracle") ? "a1包含Oracle" : "a1不包含Oracle");//a1包含Oracle 28 29 a3 = a1.subList(0,2); 30 System.out.println(a3);//[A,B] 注意并不是3个数是2个数。到第2个位置,不包含第二个位置 31 32 System.out.println(a1.indexOf("Oracle"));//3 33 System.out.println(a1.lastIndexOf("A"));//0 34 35 a1.set(2,"X"); 36 System.out.println(a1);//[A,B,X,Oracle] 37 38 //System.out.println(a1.clear());错误:此处不允许使用 空 类型 @ArrayList的clear()方法定义为void的,没有返回值。 39 System.out.println(a1.isEmpty());//false 40 a1.clear(); 41 System.out.println(a1);//[] 42 System.out.println(a1.isEmpty());//true 43 } 44 } 45 46 /* 47 1.注意集合中的 add();remove();set();都是在原有集合对象上的操作 48 */