黑马程序员-- java集合类--Vector/泛型

本文介绍了Java中的集合类Vector,包括其构造方法、常用操作如插入、修改和删除元素,以及获取元素的方法。此外,还讨论了泛型的概念,强调其在类型检查和代码可靠性方面的优点,并展示了如何在Vector中使用泛型。

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

  集合类--Vector/泛型

   Java用集合类来容纳不同种类的数据,java.util包中提供的向量(Vector)类就是集合类的一种。

       该类是Java语言为解决数组长度和元素类型不能改变而引入的集合类,用来表示线性数据结构。

 构造方法
     public Vector():创建一个空向量对象

     public Vector(int initialCapacity):使用指定的初始容量构造一个空的向量对象。标准容量增量为0

     public Vector(int initialCapacity,int capacityIncrement)使用知道的初始容量和容量增量构造一个空的向量。


 向量类中常用方法

     插入元素 public void addElement(Object obj)

              public void insertElement(Object obj,int index)

     修改元素 public void setElementAt(Object obj,int index)

     删除元素 public void removeAllElements()
   
              public boolean removeElement(Object obj)

              public void removeElementAt(int index)

 
  获取向量中元素的值
            public Object elementAt(int index)

            public Enumeration elements()

  查找  public int indexOf(Object elem)

        public int lastIndexOf(Object elem)

        public boolean contains(Object elem)

  其他方法 public int size() 元素的个数

           public int capacity() 容量的大小

           public Sring toString() 向量中所有元素的字符串表示


 例9.1 Vector类的使用。
      Vector v=new Vector();
      v.addElement("one ");
      v.addElement("two ");
      v.addElement("three ");
      v.insertElementAt("zero",0);
      v.insertElementAt("anotherThree",3);
      v.setElementAt("four ",4);
      System.out.println(v.toString());
      v.removeAllElements(); 


  如何获取向量对象中保存的元素?

     例如,String str1=v.elementAt(0);×
           String str2=v.elementAt(1);×

   修改上例:向向量对象中加入元素时,加入的是以父类Object身份出现的子类String对象,

            通过elementAt()方法获取的还是以父类对象身份出现的子类对象,因此可以通过“造型”恢复子类对象的原貌。
  
            即:String str1=(String)v.elementAt(0); 

 

   泛型的思想:

          消除取用集合元素时代码中的强制类型转换,比如事先规定好一个集合中允许加入的具体元素类型,

          然后在编译环节实现集合中添加元素的类型检查,以防止有人将非预期类型的元素保存到集合中。

   优点:类型错误可以在编译时暴露出来,而不是在运行时才发作(抛ClassCastException),这有助于早期错误排查,并提高程序的可靠性。


  使用泛型的Vector类:

     java.util包里的Vector类的泛型声明:
      public class Vector<E>{
            void add(E x);
            ….
      }
      Vector<Integer> c=new Vector<Integer> ();
      c.add(15);    c.add(new Integer(10));
      // c.add("name");
      for(int i=0;i<c.size();i++){
          Integer value=c.get(i);   System.out.println(value);
      }


   注意:
     (1)JDK5.0后集合类定义像Vector一样都进行了泛型化改造,还有泛型类带有多个类型参数,如Map<K, V>就有两个类型参数,表示键-值映射。

     (2)Java语言中的泛型是维护向后兼容的,即我们完全可以不采用泛型,而继续沿用过去的做法。

     (3)在高版本开发环境中编译未启用泛型机制的集合类应用代码时,会输出编译提示信息。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值