}; } allList = new ArrayList() ; // 指定操作的泛型为String allCollection = new ArrayList() ; // 指定一个集合 allList.add(\// 此方法由Collection接口而来 allList.add(0,\// 在第一个位置上添加新的内容 System.out.println(allList) ; allCollection.add(\// 向Collection中加入内容 allCollection.add(\allList.addAll(allCollection) ; // 把集合allCollection加入到allList中 allList.addAll(0,allCollection) ;// 加入到指定的第1个位置 System.out.println(allList) ; 既然可以增加数据,那么就可以删除数据
List中存在两种删除:根据对象内容、根据对象编号 import java.util.ArrayList ; import java.util.List ; public class ArrayListDemo02{ public static void main(String args[]){ List allList = null ; allList = new ArrayList() ; // 指定操作的泛型为String allList.add(\// 此方法由Collection接口而来 allList.add(0,\// 在第一个位置上添加新的内容 allList.add(\// 向Collection中加入内容 allList.add(\ allList.remove(0) ; // 删除第一个元素,指定删除的位置 allList.remove(\此方法由Collection接口继承而来 System.out.println(allList) ; // 输出的是集合 } };
集合中的内容可以添加,可以删除,那么实际上最重要的就是输出(输出的是元素)。 ? 在List接口中提供了get()方法,利用此方法就可以完成输出。 ? 通过循环完成输出,循环的次数由size()方法取得。 import java.util.ArrayList ; import java.util.List ; public class ArrayListDemo03{ public static void main(String args[]){ List allList = null ; allList = new ArrayList() ; // 指定操作的泛型为String allList.add(\// 此方法由Collection接口而来 allList.add(\// 此方法由Collection接口而来 allList.add(0,\// 在第一个位置上添加新的内容 allList.add(\// 向Collection中加入内容 allList.add(\System.out.print(\由前向后输出:\for(int i=0;i=0;i--){ System.out.print(allList.get(i) + \、\} 结果: 由前向后输出:World、Hello、Hello、MLDN、www.mldn.cn、 由后向前输出:www.mldn.cn、MLDN、Hello、Hello、World、 此输出方式是List接口所独有的,而其他接口是没有的,尤其是Collection中是没有根据索引取出内容的操作。 import java.util.ArrayList ; import java.util.List ; public class ArrayListDemo04{ public static void main(String args[]){ List allList = null ; allList = new ArrayList() ; // 指定操作的泛型为String allList.add(\// 此方法由Collection接口而来 allList.add(0,\// 在第一个位置上添加新的内容 allList.add(\// 向Collection中加入内容 allList.add(\ }; } String str[] = allList.toArray(new String[]{}) ; // 指定好类型 System.out.print(\指定数组类型:\for(int i=0;i subList(int fromIndex, int toIndex),List接口扩充 查找指定的对象是否存在:int indexOf(Object o),如果查找到则返回位置,否则返回-1 查找是否存在:boolean contains(Object o) import java.util.ArrayList ; import java.util.List ; public class ArrayListDemo05{ public static void main(String args[]){ List allList = null ; allList = new ArrayList() ; // 指定操作的泛型为String System.out.println(\集合操作前是否为空?\ allList.add(\// 此方法由Collection接口而来 allList.add(0,\// 在第一个位置上添加新的内容 allList.add(\// 向Collection中加入内容 }; } allList.add(\System.out.println(allList.contains(\字符串存在!\字符串不存在!\List allSub = allList.subList(2,3) ; // 字符串截取 System.out.println(\集合截取:\for(int i=0;i extends AbstractList implements List,RandomAccess,Cloneable,Serializalbe 虽然Vector类是旧的类,但是因为让其实现了List的接口,所以对程序来讲是一样的。 import java.util.Vector ; import java.util.List ; public class VectorDemo01{ public static void main(String args[]){ List allList = null ; allList = new Vector() ; // 指定操作的泛型为String allList.add(\// 此方法由Collection接口而来 allList.add(\// 此方法由Collection接口而来 allList.add(0,\// 在第一个位置上添加新的内容 allList.add(\// 向Collection中加入内容 allList.add(\ for(int i=0;i此方法是最早的增加元素的操作,之后此方法的功能与add()方法是一致的。 import java.util.Vector ; import java.util.List ; public class VectorDemo02{ public static void main(String args[]){ Vector allList = null ; allList = new Vector() ; // 指定操作的泛型为String allList.addElement(\// 此方法由Collection接口而来 allList.addElement(\向Collection中加入内容 }; } allList.addElement(\for(int i=0;i子类的差异:ArrayList与Vector的区别 No. 比较点 ArrayList 1 2 3 4 推出时间 性能 线程安全 输出 Jdk1.2之后推出的,属于新的操作类 采用异步处理方式,性能更高 属于非线程安全的操作类 只能使用Iterator、foreach输出 Vector JDK1.0时推出,属于旧的操作类 采用同步处理方式,性能较低 属于线程安全的操作类 可以使用Iterator、foreach、Enumeration输出 2.3、总结
1、掌握了以上的操作方法,实际上List接口的作用就明白了,而且之后的全部类集操作中也基本上都是以这些方法为操作的标准,只是各个的特性不一样,例如:List中允许有重复元素。 2、ArrayList和Vector类的区别
3、LinkedList类
3.1、本章目标
? 掌握LinkList与List接口的关系
? 掌握Queue接口的作用