当前位置 : 主页 > 编程语言 > java >

Java集合简介与vector

来源:互联网 收集:自由互联 发布时间:2022-07-19
/* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知


 

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

Java集合简介与vector_java

1、什么是集合框架

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

2、集合框架的结构

Java集合简介与vector_集合框架_02

Java集合简介与vector_集合框架_03

编辑

3、什么是Vector

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

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

Java集合简介与vector_java_04

Java集合简介与vector_数组_05

编辑

4、vector扩容因子

protected int

Java集合简介与vector_集合框架_06

 5、扩容源码

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

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

private void grow(int {
// 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 {
if (minCapacity < 0) // overflow
throw new OutOfMemoryError();
return

Java集合简介与vector_数组_07

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);
}



}
}

Java集合简介与vector_数组_08

更多关注

​​https://edu.51cto.com/topic/3338.html​​

上一篇:基于JavaSwing的简易通讯录系统
下一篇:没有了
网友评论