持有对象

持有对象


一、Collection接口

1.ArrayList与LinkedList:基本点ArrayList,擅长随机访问元素,但是在List的中间插入和移除元素时比较慢;LinkedList,能以低代价在List的中间进行插入和移除操作,提供了优化的顺序访问,但在随机访问元素是比较慢。


2.关于ArrayList的一些方法:

1)remove():移除某个元素。

2)contains():确定某个对象是否在列表中。

3)indexOf():返回某个元素在List集合在位置的索引编号。

4)subList():截取List集合中的某一段,如subList(1,4)。

5)retainAll():比较两个List集合中的元素,保留交集。

6)removeAll():移除List集合中所有元素。


3.关于LinkedList的一些方法:

1)getFirst()和element():返回列表第一个元素,不会移除它,如果为空会抛出NoSuchElementException。

2)peek():返回列表第一个元素,但是当列表为空时返回null。

3)removeFirst ()和remove():移除并返回列表的第一个元素,如果列表为空抛出NoSuchElementException。

4)poll():移除并返回列表的第一个元素,列表为空则返回null。

5)addFirst()、add()和addLast():都将某个元素插入到列表的尾部。

6)removeLast():移除并返回列表最后一个元素。


4.Stack栈

“栈”通常指“后进先出”(LIFO),即第一个压入元素最后才会弹出,如手枪弹夹。同时LinkedList具有直接实现栈所有功能的方法。

public class LinkedListStack<T>{
    private LinkedList<T> listStack = new LinkedList<>();
    //压栈
    public void push(T t){
        listStack.addFirst(t);
    }
    //取栈
    public T peek(){
        return listStack.getFirst();
    }
    public T pop(){return listStack.removeFirst();}
    public boolean empty(){return listStack.isEmpty();}
}

5.Set

Set不保存重复元素,Set集合具有与Collection完全一样的接口。Set最常被用于判断某元素是否在Set集合中,因此通常会选择使用HashSet,能够实现快速查找。Set集合有:HashSet能够实现快速查找,使用散列函数;TreeSet可对集合内部排序,采用红-黑树数据结构存储;LinkedHashList采用散列。


二、Queue与PriorityQueue

Queue队列是一个典型的先进先出(FIFO)容器,即从容器的一端放入事物,从另一端取出,并且事物放入容器的顺序与取出的顺序是相同的。


PriorityQueue优先队列,队列按照一定的规则来取出当前优先级最高的元素。PriorityQueue中的offer()方法可用于插入一个元素,使用默认的排序来对元素排序;peek()、poll()和remove()方法,获取的元素都是队列中优先级最高的元素;Collection.reverseOrder()可产生反序的Comparator。


三、迭代器

迭代器是一个对象,它的工作是遍历并选择序列中的对象,迭代器通常被称为轻量级对象:创建它的代价小。但是iterator只能单向移动:

1)使用方法iterator()要求容器返回一个iterator。
2)使用next()获得序列中的下一个元素。
3)使用hasNext()检查序列中是否还有元素。
4)使用remove()将迭代器新近返回的元素删除,remove()前必须先调next()。

Iterator<Demo> it = demo.iterator();
while(it.hasNext()){
    Demo d = it.next();
    it.remove();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐只乐之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值