ArrayList与Vector的应用与区别

-------------------------
  Vector<String> v = new Vector<String>();// 创建Vector对象
  v.add("铅笔");// 添加第1个元素
  v.add("钢笔");// 添加第2个元素
  v.add("笔记本");// 添加第3个元素
  v.add(0, "打印纸");// 在索引位置为1的位置插入一个元素“打印纸”
  // 遍历List集合对象
  for (int i = 0; i < v.size(); i++) {
   System.out.print("索引位置" + i + ":" + v.elementAt(i)+"  ");// 输出当前位置的元素
  }
  v.remove(2);
  System.out.println("\r\n删除索引位置为2的元素后:");
  // 遍历List集合对象
  for (int i = 0; i < v.size(); i++) {
   System.out.print("索引位置" + i + ":" + v.elementAt(i)+"  ");// 输出当前位置的元素
  }  
---------------------------------
  List<String> list = new ArrayList<String>();// 创建List集合对象
  list.add("铅笔");// 添加第1个元素
  list.add("钢笔");// 添加第2个元素
  list.add("笔记本");// 添加第3个元素
  list.add(1, "打印纸");// 在索引位置为1的位置插入一个元素“打印纸”
  // 遍历List集合对象
  for (int i = 0; i < list.size(); i++) {
   System.out.println("索引位置" + i + ":" + list.get(i));// 输出当前位置的元素
  }
  Vector和ArrayList Vector和ArrayList在使用上非常相似,都可用来表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素。
  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe).
  而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
  当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间


ArrayList和Vector在从指定位置取得元素,从容器的末尾增加和删除元素都非常的有效,所有的这些操作都能在一个常数级的时间(O(1))内完成。但是从一个其他的位置增加和删

除一个元素就显得颇为费时,差不多需要的时间为O(n-i),这里的n代表元素个数,i代表要增加和删除的元素所在的位置。这些操作需花费更多的时间,因为你需要挨个移动i和更

高位置的元素。那么,以上这些到底说明了什么呢?
 
  这意味着,如果你取得一个元素,或者从数组末尾增加或删除一个元素的话,随便你使用Vector和ArrayList。如果你想要对数组内容做其他操作的话,那么就为自己好另一个容

器吧。比喻说,LinkedList可以在常数级时间(O(1))内为任意一个位置的元素增加和删除。但是,取得一个元素,会稍微慢一点,时间要用O(i) ,这个i是元素的位置。通过

ArrayList也是很简单的,因为你可以简单使用一个索引,而不是构造一个iterator 。LinkedList也为每个插入的元素建立一个内部对象。所以,你也必须知道,同时产生了垃圾

对象。   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值