Java中的集合框架

什么是集合


集合和数组一样,是一个用来储存数据的容器。

集合与数组的区别


那之前学习过的有数组这个容器了,那这个集合和数组有什么区别呢?
数组储存的元素类型必须一致。一但定义,长度就不能变动,也就是数组的大小事固定的。
而集合储存的元素就是多样的了,可以储存多种数据类型(只能是引用数据类型,基本数据类型会自动装箱为包装类)。集合的大小是可以变动的。

集合与数组的特点


我们在使用容器内的元素时,对元素执行的操作无非就是增删改查这样的基本操作。

数组的特点


我们知道数组容器是有下标的,这就相当于是门牌号。当需要查找某一元素时,只要知道其对应的下标,就可以方便快捷的查找到想要的元素。但是这样也有一个弊端:当想要在数组的中间插入或者删除元素时,其身后的每一个元素都需要进行顺位修改。所以数组对增删操作是极其不便的。

元素的特点


而集合储存元素的方式就不太一样了。在内存中,元素之间是相互两两连接的。我们知道,数据在内存中是有地址的,集合里的每个元素都保存了两个地址(除了开始和结束),第一个元素保存了第二个地址,第二个元素保存了第一个元素和第三个元素的地址,第三个元素保存了第二个元素和第四个元素的地址,以此类推。当我们需要查找某一个元素时,会从第一个元素开始比对。第一个元素并不是,于是顺着第一个元素的地址找到第二个元素。第二个元素也不是,于是顺着第二个元素的地址找到第三个元素。就这样一个一个寻找下去。

所以集合对查询的操作室很不方便的。而相应的,这样的储存方式却极大的方便了增删操作。

例如,要在第三个元素和第四个元素之间增加一个元素。第三个元素储存的是二和四的地址,第四个元素储存的是三和五的地址,现在在他俩之间添加一个新元素。这样的地址就变成了:第三个元素储存第二个和新元素的地址,新元素储存的是第三个和第四个元素的地址,第四个元素储存的是新元素和第五个元素的地址。这样说可能有点绕,还是看看图吧。
Java中的集合框架
这下大致有点理解了吧,添加和删除元素只会影响到其相邻的两个元素,并不会对其他元素产生影响。

总结

数组储存的数据易于查询,不宜于增删。
集合储存的数据易于增删,不宜于查询。

Collectoin集合(单列集合)

List集合

ArrayList

LinkedList

Set集合

HashSet

TreeSet

Map集合(双列集合)

HashMap集合

TreeMap集合