Java 集合Collection提供的接口方法
- 前言
- 集合类框架体系
- Collection接口中定义的API
- API方法的详细信息(某份JDK1.8 机翻API文档中的截图)
- int size()
- boolean isEmpty()
- boolean contains(Object o)
- Iterator iterator()
- Object[] toArray()
- T[] toArray(T[] a)
- boolean add(E e)
- boolean remove(Object o)
- boolean containsAll(Collection<?> c)
- boolean addAll(Collection<? extends E> c)
- boolean removeAll(Collection<?> c)
- default boolean removeIf(Predicate<? super E> filter)
- boolean retainAll(Collection<?> c)
- void clear()
- boolean equals(Object o)
- int hashCode()
- spliterator/stream/parrelStream方法暂不进行记录
前言
- 在使用Java在Leetcode刷题的过程中难免会用到一些写好的数据结构看,比如双端队列Deque,优先级队列PriorityQueue等,它们都有自己专门的API,比如双端队列的pollFirst(),pollLast()弹出队头队尾元素
- 但是它们在Java中都继承于Collection这个接口,Collection中定义的方法它们肯定进行了实现,但是搜索教程时因为大佬们一般只会写出它们的独有API,所以这里对集合类及其子类通用的API方法做个小结
- 需要说明的是,因为Collection只是个接口,实现类中的具体方法有所不同,遇到特殊情况使用时需要注意,而且
根据下面的详细说明,可以发现有些实现类是禁用了某些方法的,所以最好的方法还是一个类一个类的进行总结
集合类框架体系
第二张图中,实现边框的是实现类,比如LinkedList,ArrayList,HashMap,折现边框的是抽象类,如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,iteratior,List,Set,Queue等
Collection接口中定义的API
同时作为继承于Iterable接口的接口,也定义了可以用于遍历的For each方法
【总结】 集合各种具体实现中经常使用的下述方法在Collection这个顶层接口就已经被定义了!
- 增:add,addAll
- 删:remove,removeAll,removeIf
- 判断是否存在:contains,containsAll
- 判断是否为空:isEmpty
- 判断是否相等:equals
- 清空:clear
- 获取集合元素数量:size
- 转化成数组:toArray