<commit_before>---
published: true
layout: post
title: Java基础-集合类底层数据结构
category: Java
tags: 
  - Java
time: 2017.02.15 10:50:00
excerpt: Vector底层的数据结构也是数组结构的,一般情况ArrayList可以取代Vector  
相对于LinkedList底层的链表结构来说,数组结构查询元素要快很多,但是对于增删元素链表结构要比数组元素快.对于不是频繁进行增删操作的数据存储一般还是选择底层为数组的ArrayList.由此可以认识到对于实现List接口的类共性特点为:元素有索引,元素是有序的,在同一个集合中元素可以重复存在.
---

##### 集合类底层数据结构
![image](http://od4ghyr10.bkt.clouddn.com/Java%E9%9B%86%E5%90%88%E7%B1%BB%E6%A1%86%E6%9E%B6%E7%B1%BB%E5%9B%BE.jpg)

1. ArrayList底层的数据结构为数组结构

2. LinkedList底层的数据结构为链表结构的（栈，队列的实现是基于LinkedList的)

3. Vector底层的数据结构也是数组结构的，一般情况ArrayList可以取代Vector  
相对于LinkedList底层的链表结构来说，数组结构查询元素要快很多，但是对于增删元素链表结构要比数组元素快。对于不是频繁进行增删操作的数据存储一般还是选择底层为数组的ArrayList。由此可以认识到对于实现List接口的类共性特点为：元素有索引，元素是有序的，在同一个集合中元素可以重复存在！

4. HashSet底层的数据结构为HashMap，其key为保存的元素，value为名为PRESENT的Object对象
```<commit_msg>add Java基础-集合类底层数据结构.md<commit_after>---
published: true
layout: post
title: Java基础-集合类底层数据结构
category: Java
tags: 
  - Java
time: 2017.02.15 10:50:00
excerpt: Vector底层的数据结构也是数组结构的,一般情况ArrayList可以取代Vector相对于LinkedList底层的链表结构来说,数组结构查询元素要快很多,但是对于增删元素链表结构要比数组元素快.对于不是频繁进行增删操作的数据存储一般还是选择底层为数组的ArrayList.由此可以认识到对于实现List接口的类共性特点为:元素有索引,元素是有序的,在同一个集合中元素可以重复存在.
---

##### 集合类底层数据结构
![image](http://od4ghyr10.bkt.clouddn.com/Java%E9%9B%86%E5%90%88%E7%B1%BB%E6%A1%86%E6%9E%B6%E7%B1%BB%E5%9B%BE.jpg)

1. ArrayList底层的数据结构为数组结构

2. LinkedList底层的数据结构为链表结构的（栈，队列的实现是基于LinkedList的)

3. Vector底层的数据结构也是数组结构的，一般情况ArrayList可以取代Vector  
相对于LinkedList底层的链表结构来说，数组结构查询元素要快很多，但是对于增删元素链表结构要比数组元素快。对于不是频繁进行增删操作的数据存储一般还是选择底层为数组的ArrayList。由此可以认识到对于实现List接口的类共性特点为：元素有索引，元素是有序的，在同一个集合中元素可以重复存在！

4. HashSet底层的数据结构为HashMap，其key为保存的元素，value为名为PRESENT的Object对象
```
{'fraction_non_alphanumeric': 0.11077664057796509, 'fraction_numerical': 0.05177603853100542, 'mean_word_length': 11.311111111111112, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4821344', 'n_tokens_mistral': 1163, 'n_tokens_neox': 1310, 'n_words': 56}