Java集合框架

Java集合框架

一、类集的作用
       类集实际上是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充。对于类集而言,其内部的元素也应该保持一致,不管何种类型的数据,所有的操作方式都应该是一样的。

二、collection接口

       (1)子接口有list,set,queue,sortedset

三、list接口

ArrayList:

(1)list接口的子类—arraylist:是list最常用的类,list继承于abstractlist,abstractlist实现了list接口

(2)add()方法,在末尾增加元素,add(int ,object)在指定位置添加元素,addAll()添加全部数据

(3)list中有两种删除,一种是根据元素删除,一种是根据位置索引删除

(4)list中可以实现输出,通过get()方法和循环,循环次数通过size()方法确定,输出的元素可以有重复元素。这种输出方法是list独有的。

(5)list存在toArray()方法可以从list对象中取出各个元素的对象

(6)list中还有一些方法,例如isEmpty(),subList(),indexOf(),contains()他们分别用来判断是否为空;截取部分集合;查找某个元素,如果元素存在,则返回元素位置,否则返回 -1;查找是否存在。

 

Vector

       虽然Vector是旧的类,但是实现了list接口,效果是一样的。在类中提供了很多重复的方法。

       VectorArrayList的区别,ArrayList比Vector效率高,但是没有Vector安全

 

 

四、Linklist

       实现了queue接口,queue接口是collnection子接口。本身大量扩充了queue和list接口

 

五、set接口

       同样是collection的子接口,但是和collection和list不同,set中不能加入重复元素

(1)子类hashset:使用散列表的方式存放,本身没有顺序,不会去掉重复元素。除非通过重写equals方法或者使用hashcode()方法。

(2)子类treeset:有序存放。Treeset去掉重复元素存在缺陷,依靠conparable接口完成排序操作

 

六、sortedset接口

       此接口的子类都可以排序,只要是以Sorted开头的接口,都能够实现排序操作

七、集合输出接口

Iterator

       集合的输出支持一下几种方式,Iterator,ListIterator,foreach输出,Enumeration输出。只要看到集合输出就一定使用Iterator接口,这是最标准的做法。Iterator使用迭代输出,每次先判断,集合中是否有元素,然后输出或者删除,然后判断下一个。在使用Iterator输出时,不要使用集合类中的remove()方法,不然会影响循环的执行。Iterator的输出属于从前向后的单向输出。

 

ListIterator

       实现了从前向后,和从后向前的双向输出。但是collection中没有对其的实例化操作,在list接口中有对ListIterator的实例化操作。在执行双向输出时,首先要实现由前向后输出,再实现由后向前,不然无法输出。

 

八、Map接口

       Map每次操作的是一对对象,每个元素通过键值对的形式储存在结合之中

Map.Entry接口:此接口是map接口的内部接口,存放键值对的内容,其实map集合中装的是Map.Entry对象,Map.Entry对象又装入了键值对,所以看起来map储存了一对对对象。

       (1)hashmap和hashtable的区别,hashmap采用异步处理方式,性能更高,但同时线程不够安全,hashtable属于比较早出现,采用同步处理方式,性能较低,但是线程安全。

       (2)treemap是map子类:属于排序类,通过key的值排序。 

       (3)弱引用类WeekHashMap:如果一个map假设长期不使用的话,按之前的做法是不会删除的,如果希望它能自动删除掉的话,可以使用弱引用。当里面的内容不用的时候,会自动删掉里面你的内容。

(4)使用map集合时,如果需要输出,不能直接迭代输出,首先要用entryset()方法将map实例变为set对象,再用set接口实例Iterator对象;通过Iterator迭代输出的都是map.entry对象,再用map.entry将key和value分开。

(5)当用自定义类作为key的时候,可能会找不到集合中key所对应的value的值。解决方法:覆写equals()方法和hashcode()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值