本文共 1485 字,大约阅读时间需要 4 分钟。
Vector类与ArrayList是相似滴,都是实现数组的动态改变(动态数组),不同的是Vector类是同步的而ArrayList类是非同步的。那么何为同步,何为非同步呢???
java中的同步
指多个线程在同时要访问某个对象、某个变量。某个方法、某个代码块等等时,保证只有唯一线程访问同步对象(即synchronized修饰的部分)
相关方法说明:
remove()方法 : 移除第一个与其匹配的向量元素。
add()方法 :添加的元素若相同,他们的ID内存地址会指向同一块地方,即事实上是添加了一个指向相同地址的引用变量,当然删除时还是删除第一个与其匹配的元素,即少一个指向这块地址的引用变量。
对ArrayList 对象进行增添,删除操作时。越靠近末尾操作越快。好像压栈样,因为末尾后添加进去,至于栈顶部,操作时当然更快啦。。
ArrayList串行化
list.add("first");
list.add("second");
list.add("third");
list.add("fourth");
此时ArrayList的list 对象只有四个真正的实例变量,size 当然是4但是初始化list对象是分配了10个给list用,那么有6个是null。显然这样肯定浪费了资源。
list.trimToSize() ;
此时因为调用了trimToSize方法,list 的那6个剩余的空间被JVM回收掉了。。。。。。。。。因此我们就说trimToSize方法--用于最小化ArrayList对象的实例变量。
一般用ArrayList存放,Vector我用的很少。才知道Vector是同步的,ArrayList是非同步的。至于迭代器,那就是另外一件事了。
转载地址:http://ygalf.baihongyu.com/