以我的理解:集合分为两种,一种继承collection的,另一种map。
在继承collection里分三种list、set、queue。list与set的主要区别在于list有序,可重复,set无序不可重复。在list里可在分为两大主要的ArrayList和LinkdList,而ArrayList的特征为查询快、相对增删改慢。LinkdList就相对增删改快,查询慢(应用场景如:session版购物车)。对于set集合分为HashSet、TreeSet、LinkedHashSet,HashSet速度快、无顺序,TreeSet按插入的顺序排序,而LinkedHashSet为速度快并以插入的顺序保存。对于queue它主要特征先进先出,在子线程和主线程中用到了queue,如子线程中有个queue集合,里含有很多个message,通过looper去queue集合里从头一个一个取出message给handler(线程间通信机制),由handler在转给主线程,子线程和主线程直接互不影响。
而map集合不继承collection,map集合以键值对存在,map中的键不可重复,值可重复,键允许有一个为null,而值可以多个为null。map又分为HashMap、TreeMap、LinkedHashMap,而它们之间的区别和set里的性质一样。
还有一种和集合有区别的为数组array,它和ArrayList的区别是array只可存相同数据类型的数据,长度是固定的,而ArrayList可存不同数据类型的数据,长度是可变的。
集合
最新推荐文章于 2024-08-05 08:45:00 发布