今天好崩溃,也是醉了,老师的讲课方式有点儿接受不了了,跟之前在视频上别的老师有点儿差距,并不是讲得不好,而是因为掌控不好时间造成一些东西没时间讲,直接跳过。好吧,不抱怨了,师父领进门修行在个人。好好总结总结集合吧。
先说集合的概念,集合我觉得就像一个存放对象的数组,不过要比数组好得多,毕竟数组一旦创建长度就一定了嘛。
java集合分为Collection和Map两种体系。
Collection接口:这个特点是”无序可重复”,也就是说,这个里面存放的对象不按照先后添加顺序排序,不过集合内元素可以重复。
有两个子接口,Set 和 List。
Set集合不允许包含相同的元素,Set集合判断两个对象是否相同是根据equals方法的。他主要是用HashSet实现类,HashSet是按Hash算法来存储集合中的元素,线程不安全,不过集合的元素可以使null。HashSet集合判断两个元素是否相等的标准除了equals的返回值以外,还有hashCode()方法的返回值。
List集合类中元素有序,且可重复,这里面的每个元素都有对应的顺序索引。List的实现类常用的有ArrayList,LinkedList 和Vector。当然还有一些常用的方法,我就不一一列出了。ArrayList是比较常用的实现类,虽然线程不安全但是效率高,Vector跟ArrayList方法一样,而且线程安全,但是还是不推荐使用Vector,因为Vector效率低。而LinkedList类效率较高,适用于频繁的插入或者删除元素的操作。
遍历集合元素时,有一个iterator接口,具体使用方法:
Set set = new HashSet();
Iterator it = set.iterator();
while(it.hasNext()){
Object obj = it.next();
//System.out.println(obj);
}
如果是Map集合的话,用iterator遍历需要如下操作:
Map map = new HashMap();
Set set = map.keySet();
Iterator it = set.iterator();
while(it.hasNext()){
Object obj = it.next();
Object obj2 =map.get(obj);
//System.out.println(obj+” >>>>>>”+obj2);
}
后来又讲到了泛型,泛型其实就是在集合后面加入了< >,这里面写上类型,就可以约束集合所储存的对象类型,这样有时候需要取出对象使用时就不必强制转型了。
然后就是另外一个大体系,Map接口。Map用于保存具有映射关系的数据 key -Value 。而且Map中的key是用Set来存放的,不允许重复的。而且key与value之间存在单向一对一关系。HashMap是Map接口使用频率最高的实现类,不过我目前也就理解了一点儿点儿,主要的就是方法的调用还不太熟悉,还要好好下功夫好好看。
好吧,今天就写到这里吧,好好看书写一下代码练习一下!
<!--EndFragment-->