Vector和ArrayList异同

本文介绍了ArrayList与Vector两种集合类的构造方法及其区别,并通过示例代码展示了这两种集合类在不同元素数量下的扩容机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--构造函数

[java]  view plain  copy
  1. <span style="font-size:14px;">/* 
  2. * ArrayList三个构造方法 
  3.  */  
  4.  public ArrayList(int initialCapacity); //一个可以设置默认初始容量的类的构造方法  
  5.  public ArrayList();//一个初始容量为0的类的构造方法  
  6.  public ArrayList(Collection<? extends E> c);//一个传递参数为集合的类的构造方法</span>  
[java]  view plain  copy
  1. <span style="font-size:14px;">/* 
  2. * Vector四个构造方法 
  3. */  
  4.  public Vector(int initialCapacity, int capacityIncrement);//一个可以设置默认初始容量和增量的类的构造方法  
  5.  public Vector(int initialCapacity); //一个可以设置默认初始容量的类的构造方法  
  6.  public Vector();//一个初始容量为10的类的构造方法  
  7.  public Vector(Collection<? extends E> c);//一个传递参数为集合的类的构造方法</span>  

--初始容量和增量的区别

[java]  view plain  copy
  1. <span style="font-size:14px;">package com.zking.list;  
  2.   
  3. import java.lang.reflect.Field;  
  4. import java.util.ArrayList;  
  5. import java.util.List;  
  6.   
  7. public class Arraylisttest {  
  8.     // 反射,查看ArrayList属性  
  9.     static void print(List List) throws Exception {  
  10.   
  11.         Class c = List.getClass(); // 得到类的对象  
  12.   
  13.         Field f = c.getDeclaredField("elementData"); // 得到属性值  
  14.   
  15.         f.setAccessible(true); // 设置为可以访问的属性  
  16.         Object[] o = (Object[]) f.get(List);  
  17.   
  18.         System.out.println(o.length); // 默认长度  
  19.     }  
  20.   
  21.     public static void main(String[] args) throws Exception {  
  22.       
  23.         <span style="color:#3333ff;">List ls = new ArrayList();</span>  
  24.         System.out.println("集合中没有任何添加任何对象");  
  25.         print(ls);  
  26.   
  27.         System.out.println("集合中添加到2个对象");  
  28.         for (int i = 0; i < 2; i++) {  
  29.             ls.add(i);  
  30.         }  
  31.         print(ls);  
  32.   
  33.         System.out.println("集合中添加到13个对象");  
  34.         for (int i = 0; i < 11; i++) {  
  35.             ls.add(i);  
  36.         }  
  37.         print(ls);  
  38.   
  39.         System.out.println("集合中添加到20个对象");  
  40.         for (int i = 0; i < 7; i++) {  
  41.             ls.add(i);  
  42.         }  
  43.         print(ls);  
  44.   
  45.         System.out.println("集合中添加到23个对象");  
  46.         for (int i = 0; i < 3; i++) {  
  47.             ls.add(i);  
  48.         }  
  49.         print(ls);  
  50.           
  51.         System.out.println("集合中添加到34个对象");  
  52.         for (int i = 0; i < 11; i++) {  
  53.             ls.add(i);  
  54.         }  
  55.         print(ls);  
  56.         System.out.println("集合中添加到50个对象");  
  57.         for (int i = 0; i < 16; i++) {  
  58.             ls.add(i);  
  59.         }  
  60.         print(ls);  
  61.   
  62.     }  
  63.       
  64. }</span>  
[java] view plain  copy
  1. <span style="font-size:14px;">package com.zking.list;  
  2.   
  3. import java.lang.reflect.Field;  
  4. import java.util.Vector;  
  5.   
  6. public class Vectortest {  
  7.     // 反射,查看Vector属性  
  8.             static void print(Vector vector) throws Exception {  
  9.   
  10.                 Class c = vector.getClass(); // 得到类的对象  
  11.   
  12.                 Field f = c.getDeclaredField("elementData"); // 得到属性值  
  13.   
  14.                 f.setAccessible(true); // 设置为可以访问的属性  
  15.                 Object[] o = (Object[]) f.get(vector);  
  16.   
  17.                 System.out.println(o.length); // 默认长度  
  18.             }  
  19.               
  20.             public static void main(String[] args)  throws Exception{  
  21.               
  22.                 /* 
  23.                  * 未设置默认初始容量和默认增量 
  24.                  */  
  25.                 <span style="color:#3333ff;">Vector v=new Vector();</span>  
  26.                 System.out.println("集合中没有任何添加任何对象");  
  27.                  print(v);  
  28.                    
  29.                  System.out.println("集合中添加到11个对象");  
  30.                 for (int i = 0; i < 11; i++) {  
  31.                     v.add(i);  
  32.                 }  
  33.                  print(v);  
  34.                    
  35.                  System.out.println("集合中添加到21个对象");  
  36.                     for (int i = 0; i < 10; i++) {  
  37.                         v.add(i);  
  38.                     }  
  39.                      print(v);  
  40.                        
  41.                      System.out.println("集合中添加到41个对象");  
  42.                         for (int i = 0; i < 20; i++) {  
  43.                             v.add(i);  
  44.                         }  
  45.                          print(v);  
  46.                            
  47.                            
  48.                          System.out.println();  
  49.                   
  50.               
  51.           
  52.         }  
  53. }</span>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值