List

两种类型的List:

ArrayList:它长于随机访问元素,但是在List的中间插入和移除元素时比较慢。

|-用contains()方法来确定对象是否在列表中。

|-若移除一个对象,则可以将这个对象的引用传递给remove()方法。

|-indexOf()方法返回查询对象在List中的位置(从零开始),不存在的话返回-1。

|-subList()方法允许你很容易的从较大的列表中创建出一个片段,其中两个参数start,end,截取的是从start到end-1。

|-retainAll()方法是一个有效地交集操作

LinkedList:它通过较低的代价在List中间进行插入和删除的操作,提供优化的顺序访问,LinkedList在随机访问上相对较慢。

他在执行某些操作时比ArrayList更高效,但是在随机访问对象是就要比ArrayList逊色一些。

|-getFirst(),element()完全一样,返回列表的头(第一个元素),但是并不移除。如果List为空,则抛出NoSuchElementException。peek()方法与上述两个方法的唯一差异就是List为空时返回null。

|-removeFirst()和remove()也是完全一样,他们移除并返回列表的头,如果List为空则返回NoSuchElementException。poll()稍有差异,当列表为空时返回null。

|-addFirst(),add()和addLast()相同,他们都将某个元素插入到列表的尾部。

|-removeLast()移除并返回列表的最后一个元素。

迭代器:

|-使用方法Iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素。

|-使用next()获得序列的下一个元素。

|-使用hasNext()检查序列中是否还有元素。

|-使用remove()将迭代器新近返回的元素删除。

有了Iterator就不必为容器中的元素的数量操心了,那是由hasNext()和next()关心的事情。

如果你只是向前遍历List,并不打算修改list本身,那么使用foreach()语法会变得更加简洁。

Iterator还可以移除由next()产生的最后一个元素,这意味着在调用remove()之前必须先调用next()。

 

注意:其实迭代器最大的好处并不是用来访问容器中的对象(因为for和foreach会做的更好,更简单),其最大的好处是用来统一对容器的访问方式。(因为所有容器都可以通过iterator()方法的到迭代对象。)

ListIterator

她是一个更加强大的Iterator的子类型,她只能用于各种List的访问,尽管Iterator只能先前移动,但是ListIterator可以双向移动。

|-创建listIterator对象:ListIterator it= pets.listIterator() ;

|-得到当前位置的前一个和后一个的索引:it.nextIndex(),it.previousIndex()。得到引用:it.next(),it.previous()(也可以在.id()得到索引)

|-可以使用set()方法替换它访问过的最后一个元素:it.next(),it.set(***)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值