Java集合简介

/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*vx:it_daimeng
*/

1、什么是集合框架

        集合我们又常称集合框架。集合与数组都是对多个数据进行存储操作的结构,也是JAVA当中的容器。JAVA集合就像一种容器,可以动态地把多个对象的引用放入容器中。在开发中我们以数据结构为载体,以对象值的固定为目标,对集合展开研究。

2、集合框架的结构

 

3、什么是Vector

vector又称向量,是一种古老的存储方式,其底层实现是由不可变动的数组实现。不可变是指存储空间地址不可改且存储空间连续。

又因为vector大量使用了synchronized关键字去修饰操作方法,从而使得其为线程安全的,相对应的操作效率大大降低,又因为其扩容机制是每次扩容2倍,相比较于ArrayList的1.5倍扩容而言,申请的空间又过多,因此,到目前渐渐地被ArrayList替代。

 

4、vector扩容因子

 protected int capacityIncrement;

 5、扩容源码

vector扩容每一次是以两倍扩容。

 private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

    private void grow(int minCapacity) {
        // overflow-conscious code
        int oldCapacity = elementData.length;
        int newCapacity = oldCapacity + ((capacityIncrement > 0) ?
                                         capacityIncrement : oldCapacity);
        if (newCapacity - minCapacity < 0)
            newCapacity = minCapacity;
        if (newCapacity - MAX_ARRAY_SIZE > 0)
            newCapacity = hugeCapacity(minCapacity);
        elementData = Arrays.copyOf(elementData, newCapacity);
    }

    private static int hugeCapacity(int minCapacity) {
        if (minCapacity < 0) // overflow
            throw new OutOfMemoryError();
        return (minCapacity > MAX_ARRAY_SIZE) ?
            Integer.MAX_VALUE :
            MAX_ARRAY_SIZE;
    }

6、vector特点

        1、查询快

                由于vector底层是由一个数组构成,因此其查询相对而言较快。

        2、线程安全

7、vector使用

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;
 
public class ArrayListExample {
 public static void main(String[] args) 
  {
 //Vector
    Vector<String> vector = new Vector<>(Arrays.asList("A","B","C"));
 
    Enumeration<String> vectorEnums = vector.elements();
 
 while(vectorEnums.hasMoreElements()) {
      String value = vectorEnums.nextElement();
 if("B".equals(value)) {
        vector.add("D");
      }
      System.out.println(value);
    }
 
  

  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值