首页 > 代码库 > 集合系列日记(17.5.13)
集合系列日记(17.5.13)
Vector
Vector继承于AbstractList,是一个队列,支持相关的添加、删除、修改、遍历等功能,我们可以通过元素的序号来获取元素对象,从而实现List的快速访问,并且Vector是线程安全的。
Vector共有4个函数
?Vector() //默认的构造函数
?Vector(int capacity) //capacity是Vector默认的容量大小,由于每次增加时,会导致Vector的容量增加一倍
?Vector(int capacity,int capacityIncrement) //capacity是vector的容量大小,capacityIncrement是增加的量的大小
?Vector(Collection<? extends E>collection) //创建一个含Collection的Vector
Vector是通过数组去保存数据,当我们进行构造时,默认容量大小是10,当其不足以容纳元素时,容量便会增加
Vector共有4种遍历方式
通过迭代器进行遍历;通过for循环进行遍历;随机进行访问;Enumeration遍历
public class Test { public static void main(String[]args){ Vector vec=new Vector(); for(int i=0;i<100000;i++){ vec.add(i); } isRandomAccessSupported(vec); iteratorThroughRandomAccess(vec); forThroughRandomAccess(vec); randomThroughRandomaccess(vec); enumerationThroughRadomaccess(vec); } private static void isRandomAccessSupported(List list){ //instanceof the RandomAccess if(list instanceof RandomAccess){ System.out.println("RandomAccess is implemented!"); }else{ System.out.println("RandomAccess is not implemented!"); } } //iterator public static void iteratorThroughRandomAccess(List list){ long startTime; long endTime; startTime=System.currentTimeMillis(); for(Iterator iter = list.iterator(); iter.hasNext(); ) { iter.next(); } endTime=System.currentTimeMillis(); long inval=endTime-startTime; System.out.println(inval); } //for public static void forThroughRandomAccess(List list){ long startTime; long endTime; startTime=System.currentTimeMillis(); for(Object obj:list); endTime=System.currentTimeMillis(); System.out.println((endTime-startTime)); } //random public static void randomThroughRandomaccess(List list){ long startTime; long endTime; startTime=System.currentTimeMillis(); for(int i=0;i<list.size();i++){ list.get(i); } endTime=System.currentTimeMillis(); System.out.println((endTime-startTime)); } //Enumeration public static void enumerationThroughRadomaccess(Vector vec){ long startTime; long endTime; startTime=System.currentTimeMillis(); for(Enumeration enu = vec.elements(); enu.hasMoreElements(); ) { enu.nextElement(); } endTime = System.currentTimeMillis(); long interval = endTime - startTime; System.out.println("iteratorThroughEnumeration:" + interval+" ms"); } }
此处用迭代器遍历有疑问?mark
Vector部分功能:
public class Test { public static void main(String[]args){ Vector vec=new Vector(); // 添加元素 vec.add("1"); vec.add("2"); vec.add("3"); vec.add("4"); vec.add("5"); // 设置第一个元素为100 vec.set(0, "100"); // 将“500”插入到第3个位置 vec.add(2, "300"); System.out.println("vec:"+vec); // (顺序查找)获取100的索引 System.out.println("vec.indexOf(100):"+vec.indexOf("100")); // (倒序查找)获取100的索引 System.out.println("vec.lastIndexOf(100):"+vec.lastIndexOf("100")); // 获取第一个元素 System.out.println("vec.firstElement():"+vec.firstElement()); // 获取第3个元素 System.out.println("vec.elementAt(2):"+vec.elementAt(2)); // 获取最后一个元素 System.out.println("vec.lastElement():"+vec.lastElement()); // 获取Vector的大小 System.out.println("size:"+vec.size()); // 获取Vector的总的容量 System.out.println("capacity:"+vec.capacity()); // 获取vector的“第2”到“第4”个元素 System.out.println("vec 2 to 4:"+vec.subList(1, 4)); // 通过Enumeration遍历Vector Enumeration enu = vec.elements(); while(enu.hasMoreElements()) System.out.println("nextElement():"+enu.nextElement()); Vector retainVec = new Vector(); retainVec.add("100"); retainVec.add("300"); // 获取“vec”中包含在“retainVec中的元素”的集合 System.out.println("vec.retain():"+vec.retainAll(retainVec)); System.out.println("vec:"+vec); // 获取vec对应的String数组 String[] arr = (String[]) vec.toArray(new String[0]); for (String str:arr) System.out.println("str:"+str); // 清空Vector。clear()和removeAllElements()一样! vec.clear(); // vec.removeAllElements(); // 判断Vector是否为空 System.out.println("vec.isEmpty():"+vec.isEmpty()); } }
集合系列日记(17.5.13)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。