> 文章列表 > Java的集合(一)

Java的集合(一)

Java的集合(一)

Java的集合(一)

1、什么是集合

集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。

2、为什么要使用集合

集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题。

3、如何使用集合

3、1队列集合

3、1、1循环数组队列
Queue<String> queue = new CircularFifoQueue<>();
//判断队列是否为空
isEmpty()
//判断队列是否为满
isFull()
//向队列中添加元素
add()
//获取队列的数据,
get()

这个集合既有数组空间连续特点,也有循环队列空队列与满队列头与尾相等、头出尾进的特点。

3、1、2链表队列
Queue<String> queue = new LinkedList<>();
//判断队列是否为空
isEmpty()
//判断队列是否为满
isFull()
//向队列中添加元素
add()
//获取队列第一个数据
getFirst()
//获取队列尾数据
getLast()

这个集合既有链表空间散列特点,也有循队列头进尾出的特点。

3、1、3双端队列
ArrayDeque<String> deque = new ArrayDeque<>();

这个集合首尾两端都可以插入与删除元素

3、1、4优先队列
PriorityQueue<String> priorityQueue = new PriorityQueue<>();

这个集合无论数据时安排什么顺序进入的,查询、删除时总会先从最小元素开始。

3、2 数组集合

ArrayList<String> list = new ArrayList<>();Vector<String> vector = new Vector<>();LinkedList<String> linkedList = new LinkedList<>();

list 、vector 储存数据的空间具有连续性,靠下标来寻找元素。
linkedList 是链表结构,插入数据快。
ArrayList 线程不同步,速度快
Vector 线程同步、安全
如果是两个及两个以上的线程操作集合,建议使用Vector,否则就使用ArrayList

3、3散列集

HashSet<String> hashSet = new HashSet<>();

由于hashSet 在添加元素时,会先去查询元素是否存在,如果不存在才会去添加,元素在hashSet 中是杂乱的、没有顺序的存在。只有不关心数据顺序,且需要对数据去重时才应该使用hashSet 。

3、4数集

TreeSet<String> treeSet = new TreeSet();

treeSet是树形结构的集合, 在添加数据时,会将数据与原有数据作对比,找到合适的位置存放数据,它插入数据时比hashSet 慢,但查询大量数据时,会比之前的几种集合都快。