持有对象

xiaoxiao2021-02-28  121

持有对象


一、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(); }
转载请注明原文地址: https://www.6miu.com/read-59183.html

最新回复(0)