Java基础知识--集合框架--list之Vector类

一.介绍
在JDK2之前(在Java的集合框架之前),要存储多个数据,此时存在一个叫Vector类.
Vector类底层其实就是一个Object数组,Vector类中的方法是支持同步(方法使用synchronized修饰)的.

二.vector的设计原理(查看源代码):
在这里插入图片描述
三.Vector类存储原理:
通过源码分析,发现在Vector类中有一个Object[]类型数组.

protected Object[] elementData;

1):表面上把数据存储到Vector对象中,其实底层依然是把数据存储到Object数组中的.
2):我们发现该数组的元素类型是Object类型,意味着集合中只能存储任意类型的对象.
集合中只能存储对象,不能存储基本数据类型的值.
在Java5之前,必须对基本数据类型手动装箱.
如:v.addElement(Integer.valueOf(123));
从Java5开始支持自动装箱操作,代码.
如:v.addElement(123);其实底层依然是手动装箱.
注意:修改项目的编译级别到Java5或者Java5之上(如右图).
3):集合类中存储的对象,都存储的是对象的引用,而不是对象本身.

public class MyVector {
    public static void main(String[] args) {
        Vector v =  new Vector(5);
        StringBuilder sb = new StringBuilder("ABC");
        v.add(sb);
        System.out.println(v);//[ABC]
        sb.append("DEF");
        System.out.println(v);//[ABCDEF]
    }
}

四.常用方法
增加:
boolean add(Object e) 将指定元素添加到此向量的末尾,等价于addElement方法。
void add(int index, Object element) 在此向量的指定位置插入指定的元素。
boolean addAll(Collection c) :把c集合中的元素添加到当前集合对象中.

删除:
Object remove(int index) :删除指定索引位置的元素,并返回删除之后的元素.
boolean remove(Object o):删除指定的元素.
boolean removeAll(Collection c):从此集合中移除包含在指定 集合c中的所有元素。
boolean retainAll(Collection c):在此集合中仅保留包含在指定 集合c中的元素,求两个集合的交集。

修改:
Object set(int index, Object element) :修改当前集合中指定索引位置的元素.
返回被替换的旧的元素.

查询:
int size() :返回当前集合中存储几个元素.
boolean isEmpty():判断当前集合中元素个数是否为0.
Object get(int index):查询指定索引位置的元素.
Object[] toArray():把集合对象转换为Object数组.

发布了99 篇原创文章 · 获赞 2 · 访问量 2610

猜你喜欢

转载自blog.csdn.net/weixin_41588751/article/details/105252884