码迷,mamicode.com
首页 > 其他好文 > 详细

集合分类

时间:2018-02-01 13:18:48      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:set   eset   为什么   treemap   语言   容器   排序   哈希表   hashset   

我们都知道java是面向对象的语言,数据多了放对象里,那么对象多了放哪里呢?集合或者数组中

那么集合和数组有什么区别呢?
数组一旦初始化长度是固定的 ,集合的长度是可变的
数组只能存储一种类型的对象和基本数据,集合能存储多种不同类型的对象

在平常开发张最常用的集合体系有三种一个是List(ArrayList LinkedList vector) 还有一个set(HashSet TreeSet) 和 map(HashTable HashMap TreeMap)

那么为什么集合体系要分这么多的种类呢?
因为每个容器底层对数据的存储方式不同,也就是数据结构(数据在内存中的构成情况)

List:有序,可以重复,因为该集合体系有索引
set:无序,不可重复,无索引
map:存储键值对,键是唯一的

ArrayList:底层数据结构是数组,jdk1.2出来的,不同步的
LinkedList:底层数据结构是链表
Vector:底层数据结构是数组,jdk1.1出来的,同步

HashSet:底层数据结构是哈希表
TreeSet:底层数据结构是二叉树

HashTable:底层数据结构是哈希表,不可以存入null键null值,线程同步,jdk1.0出来的
HashMap:底层数据结构是哈希表,可以存入null键null值,jdk1.2出来的
TreeMap:底层数据结构是二叉树,线程不同步,可以给map集合中的key排序,set集合的底层是map(map去掉值之后就是set,详情见java源代码)

集合分类

标签:set   eset   为什么   treemap   语言   容器   排序   哈希表   hashset   

原文地址:http://blog.51cto.com/13579086/2067652

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!