如果不知道程序运行时需要多少对象,或者需要更复杂的方式重组,就可以使用集合
java集合框架
Collection 接口存储一组不唯一,无序的对象 , 比较杂乱,比如家中屋里的东西杂乱无章。
List接口存储一组不唯一,有序的对象(插入顺序)的对象,比如家中有一透明柜子,分为8*8各自,东西都在里面分开隔着。
Set接口存储一组唯一,无序的对象,东西是唯一的,但是顺序无常
Map接口存储一组键值对象,提供key到value的映射,key是唯一的,比如学号对应的姓名,学号唯一
List分为ArrayList和LinkedList
ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高。比如住在同一栋楼,分为101,102,201,202等等,要找一个数据502,可以一个一个房间找一直找到502,比较省力。但是插入一个数据,把张三放到202,需要把202的数据搬到301,301的搬到302,依次往后,比较费事。
LinkedList采用链表存储方式,插入,删除是的效率比较高。和ArrayList相比,不是一段连续的空间。比如张三→李四→王五 , 张三住在内蒙,李四住在新疆,王五住在海南,需要先到内蒙找张三,再去新疆找李四,过程比较麻烦。如果插入一个赵六数据在李四前面,可以把李四和张三的链接都断开,张三指向赵六就好。