collcetion包括:list,set这个我想大家可能都知道但是list,set接口下的各种子类你真的了解么?
1.首先我们来认识下list
什么是list?list主要拥有ArrayList和LinkedList但是这两个仅仅是用的多而已很多情况下我们可以采用他们不同性质来解决不同的问题,比如ArrayList就是一个数组空间不够开辟新数组来取代旧数组,而LinkedList就是一个链表。其实二者本质上来讲都是索引加索引指向的空间,但是ArrayList是一串连续的空间,而且是有初始值的,而LinkedList就是实实在在的开辟一个空间我链接上一个空间,因此ArrayList有更快的遍历速度,因为空间连续省去了去寻找地址的时间,而LinkedList由于空间不连续,因此他更适合插入一个空间,或者移除一个空间,这也意味着他要花更多的时间在寻找地址上。
2.然后我们来认识下Set
Set有点特殊因为在他的子类中出现了一个隔壁老王的儿子,那就是HashSet(HashSet的本质是HashMap,这是获取数据最快的方法),Set最大的特点就是他的数据不能重复,那么我们可以使用这个特性让他从一堆数据中去重(遍历一下就好了),他的子类我认为最有用的就是TreeSet,能去重能自动排序(自然升序)多么贴心。当然TreeSet他的储存是红-黑树结构中。
3.如何来遍历这些集合?
list可以使用for或者iterator.结合类的对象中有一个方法iterator这个方法返回一个包含所有数据的iterator遍历他就可以了,这个方法使用各种情况。