集合分类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合分类相关的知识,希望对你有一定的参考价值。

我们都知道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源代码)

以上是关于集合分类的主要内容,如果未能解决你的问题,请参考以下文章

java集合分类

机器学习四大分类

laravel collection 分类

MyBatis无限级分类实现的两种方法--自关联与map集合

JAVA集合07_关于sorted如何排序实战三级分类树状展示

课程显示,层级显示一二级分类