Java编程思想笔记0x02

持有对象

添加一组元素

  • Collections.addAll()方法接受一个Collection对象,以及一个数组或者一个逗号分隔符列表,将元素添加到Collection中。推荐使用此方法。
  • Arrays.asList()方法接受数组或列表,但是其返回的对象类型List并不是java.util.List,而是Arrays内的一个静态内部类,没有add()remove()方法。

List

  • ListCollection中添加了大量方法,可以在List中间插入和移除元素

类型

  • ArrayList:长于随机访问元素,但是在List中间插入和移除元素较慢
  • LinkedList:在中间插入和删除操作代价较低,提供了优化的顺序访问,但是随机访问相对较慢

部分方法

  • remove():此方法接受元素类型对象(调用其equals()方法)或者在List中的序号,来删除指定元素。注意如果List中元素为Integer类型时,删除值为x的方式为remove((Integer) x)而不是remove(x),后者会删掉序号为x的元素。
  • subList():获取子列表
  • containsAll():是否包含参数序列中所有的值。与参数顺序无关。
  • retainsALL():参数为另一个List,求两个List交集,结果保存在调用对象里。

LinkedList

  • 实现了List的基本接口,添加了可以使其用作栈、队列或双端队列的方法。

Stack

Set

类型

  • HashSet:使用散列函数实现,查找速度较快
  • TreeSet:基于红黑树实现
  • LinkedHashSet:同样使用散列函数实现,但同时用链表维护了元素插入顺序

Map

Queue

  • offer():在允许的情况下将一个元素插入队尾,或者返回false
  • PriorityQueue:使用offer()插入时会对元素进行排序。默认顺序是元素在队列中的自然顺序,可通过修改Comparator来修改顺序。
Author: SinLapis
Link: http://sinlapis.github.io/2019/06/28/Java编程思想笔记0x02/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.