方法演示:
1.测试Collection的方法(内涵遍历)
package p3.集合;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
//测试Collection的方法
public class Main {
public static void main(String[] args) {
//<E> 表示该集合存储的是什么类型的元素
Collection<Integer> coll=new ArrayList<Integer>();
for(int i=1;i<=10;i++){
coll.add(i); //添加元素
}
System.out.println(coll.toString()); //打印coll
Collection<Integer> coll2=new ArrayList<Integer>(); //子类实现父类,创建ArrayList集合
for(int i=11;i<=20;i++){
coll2.add(i); //添加元素
}
System.out.println(coll2.toString());
coll.addAll(coll2); //将coll2添加到coll
System.out.println(coll);
System.out.println(coll.contains(100)); //判断coll里是否有100
System.out.println(coll2.remove(11)); //删除元素
System.out.println(coll.containsAll(coll2)); //coll是否包含coll2
System.out.println(coll.equals(coll2)); //比较
System.out.println(coll.isEmpty()); //判空
System.out.println(coll.size()); //元素数
coll.retainAll(coll2); //coll中仅保留存在coll2中的元素
//遍历集合的方法之一 foreach
for(Integer number:coll){
System.out.println(number);
}
System.out.println("==============");
//遍历集合的方法之二 迭代器Iterator
Iterator<Integer> iterator=coll.iterator();
/* 迭代器是集合中内置的一个对象 该对象主要用来访问集合当前状态下的元素
* hasNext() 是否有下一个
* next() 取下一个
* */
while(iterator.hasNext()){
System.out.println(iterator.next());
}
coll.clear();
System.out.println(coll);
}
}
2.测试List的方法
package p3.集合;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
//测试List的方法
public class Main2 {
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
for(int i=0;i<10;i++){
list.add(i,i); //通过角标添加元素
}
list.add(10);//默认在列表的尾部添加
list.add(4,3);
list.add(4,3);
System.out.println(list); //打印list
System.out.println(list.indexOf(3)); //获取第一个元素3的角标
System.out.println(list.lastIndexOf(3)); //获取最后一个元素3的角标
System.out.println(list.remove(10)); //打印删除角标10的结果(10为int类型会认为是角标)
System.out.println(list);
list.remove(5); //删除角标5的元素
list.remove(new Integer(5)); //删除元素5,此时5是对象
list.add(300);
list.remove(new Integer(300));
list.set(0, 666);
System.out.println(list.subList(0, 3)); //保留角标0-2的元素 [n,m)
System.out.println(list);
//可以获取Iterator
//Iterator再迭代集合的过程中 集合不可修改(list.XXX())
/*
Iterator<Integer> it=list.iterator();
while(it.hasNext()){
Integer number=it.next();
if(number==3){
//ConcurrentModificationException
list.remove(new Integer(3));
}else{
System.out.println(number);
}
}
*/
//可以获取ListIterator
//可以在迭代集合的过程中 通过ListIterator对集合进行修改
ListIterator<Integer> it2=list.listIterator();
while(it2.hasNext()){
Integer number=it2.next();
if(number==3){
it2.remove();
}else{
System.out.println(number);
}
}
System.out.println(list);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
3.测试ArrayList
package p3.集合;
import java.util.ArrayList;
//测试ArrayList
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list=new ArrayList<Integer>(20); ///创建容量为20的ArrayList
for(int i=1;i<=10;i++){
list.add(i);
}
list.trimToSize(); //容量设为有效元素的个数
System.out.println(list.size());
System.out.println(list);
list.ensureCapacity(20); //增加容量
System.out.println(list.size());
ArrayList<Integer> list2=(ArrayList<Integer>) list.clone(); //拷贝list
System.out.println(list.equals(list2)); //比较内容,true
System.out.println(list==list2); //比较地址false
Object[] numbers=list.toArray();
for(int i=0;i<numbers.length;i++){
System.out.println(numbers[i]);
}
}
}