赞
踩
目录
Java集合容器分为Collection 和 Map 两大类,他们各自都有很多子类。
List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;
ArrayList:基于动态数组非线程安全的集合,可以连续内存存储,适合下标访问(随机访问),但是增删元素慢。扩容机制:使用数组实现,无参构造函数默认初始化长度为10,数组扩容是会将原数组中的元素重新拷贝到新数组中,长度为原来的1.5倍(扩容代价高)。
Linklist:基于链表实现的非线程安全的集合,可以存储在分散的内存中,适合做数据插入及删除操作,不适合查询。扩容机制::LinkedList不存在扩容问题,新增元素放到集合尾部,修改相应的指针节点即可。
LinkedList比ArrayList更占内存。因为LinkedList为每一个节点存储了两个引用节点。一个指向前一个元素,一个指向下一个元素。
相同点:
底层都使用数组实现。
功能相同,实现增删改查等操作的方法相似。
长度可变的数组结构。
不同点:
Vector是早期JDK版本提供,ArrayList是新版本替代Vector的。
Vector的方法都是同步的,线程安全:ArrayList非线程安全,但性能比Vector好。
默认初始化容量都是10,Vector扩容默认会翻倍,可指定扩容的大小:ArrayList只增加50%。
1.区别 :
1、Vector:就比arraylist多了个同步化机制(线程安全),性能低
2、Statck:堆栈类,先进后出。
3、Hashtable:就比hashmap多了个线程安全。
4、enumeration:枚举,相当于迭代器。
数组转 List:使用 Arrays. asList(array) 进行转换
List 转数组:使用 List 自带的 toArray() 方法。无参toArray方法返回Object数组,传入初始化长度的数组的对象,返回该对象数组。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。