自己的一点小认识,一起学习,认识不对的地方,多多指教~~~
1,为什么要学集合类,即Collection,Map?面向对象的语言主要是对对象进行操作,集合是存储对象的一种最常见方式;
2,集合与数组:数组也是用来存储操作对象,但,数组长度固定,不可变;数组只能存储基本数据类型,例如int,String等;集合长度可变,且一个集合可存储不同类型的对象(个人觉得这点很厉害);
3,集合分类:根据每种容器(集合)对数据的存储方式(数据结构)不同。collection---(List,Set),
List----(ArrayList(底层是数组数据结构),linkedList(底层是链表数据结构),Vector(底层数据结构是数组))
Set----(HashSet(底层数据结构是哈希表),TreeSet(底层数据结构是二叉树));4,List:元素有序(可索引,所以有很多和索引有关的方法),元素可重复;Set:元素无序(存入和取出的顺序不一定一致)且不允许重复;其中,HashSet能保证元素唯一性(利用HashCode方法和equals方法);TreeSet可以对集合中元素进行排序(自然顺序)
5,Map相当于和Collection一个级别的;Map<K,V>该集合存储键值对,且要求保持键的唯一性;
Map----(HashMap,Hashtable,TreeMap)。
其中,HashMap:底层是哈希表数据结构,不可以存null键、null值,且线程同步
HashMap:底层数据结构是哈希表,允许使用null键和值,其余于HashMap的用法相同,且线程不同步;
TreeMap:底层是数据机构是二叉树,可以用于给map中的键排序,且线程不同步。
最后,不同集合有自己特有的方法,这个需要多练才记得住~~~回帖,自己也正好总结下,嘿嘿
|