Skip to content

hellojavaio/java-util-collections-explain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-util-collections-explain

explain for java.util.Collections(JDK 1.8)

其他

sort(List list)

  • list 排序
  • 实体需要实现 Comparable 接口

sort(List list, Comparator<? super T> c)

  • list 排序
  • 排序规则器 Comparator

binarySearch(List<? extends Comparable<? super T>> list, T key)

  • List 实现了 RandomAccess 接口或者数量小于 5000 按照下标查找,其他情况按照迭代器查找。

binarySearch(List<? extends T> list, T key, Comparator<? super T> c)

  • binarySearch(List<? extends Comparable<? super T>> list, T key) 不同的是是否有实现排序规则

reverse(List<?> list)

  • list 反序
  • List 实现了 RandomAccess 接口或者数量小于 18 ,循环一半去调换位置的值, 其他情况使用迭代器。

shuffle(List<?> list)

  • 乱序 list
  • List 实现了 RandomAccess 接口或者数量小于 5,位置替换,其他情况使用迭代器。

shuffle(List<?> list, Random rnd)

  • shuffle(List<?> list) 增加了参数 Random

swap(List<?> list, int i, int j)

  • 调换元素值的位置

fill(List<? super T> list, T obj)

  • 填充 List
  • List 实现了 RandomAccess 接口或者数量小于 25 直接填充,其他情况使用迭代器。

copy(List<? super T> dest, List<? extends T> src)

  • 拷贝一个 List 的元素到另外一个 List
  • List 长度补得大于目标 List 长度
  • List 长度少于 10 或者 源 List 和 目标 List 都实现了 RandomAccess 接口,使用下标直接拷贝设置,其他情况使用迭代器

min(Collection<? extends T> coll)

  • 查询集合内最小值

min(Collection<? extends T> coll, Comparator<? super T> comp)

  • 查询集合内最小值
  • 自己实现了比较器

max(Collection<? extends T> coll)

  • 查询集合内最大值

max(Collection<? extends T> coll, Comparator<? super T> comp)

  • 查询集合内最大值
  • 自己实现了比较器

rotate(List<?> list, int distance)

  • List 向右移动 distance 个位置,负数向左移动.
  • List 都实现了 RandomAccess 接口或者长度小于 100,使用硬编码的设置位置的值.其他的递归式的调换,类似归并排序.

replaceAll(List list, T oldVal, T newVal)

  • 替换 List 内容为新的值
  • List 长度小于 11 或者实现了 RandomAccess 接口,使用下标去查找设置,其他按照迭代器设置.

indexOfSubList(List source, List target)

  • 目标 List 是否是 源 List 的子集,返回子集的下标.
  • List 长度少于 35, 或者 目标 List 和 源 List 都实现了 RandomAccess 接口, 采用下标形式遍历,其他采用迭代器遍历.

lastIndexOfSubList(List source, List target)

  • indexOfSubList(List<?> source, List<?> target),反向查找

不可修改

unmodifiableCollection(Collection<? extends T> c)

  • 返回一个不可修改的集合,不能添加删除元素.

unmodifiableSet(Set<? extends T> s)

  • 返回一个不可修改的 Set

unmodifiableSortedSet(SortedSet s)

  • 返回一个不可修改的排序 Set

unmodifiableNavigableSet(NavigableSet s)

  • 返回一个不可修改的 NavigableSet

unmodifiableList(List<? extends T> list)

  • 返回一个不可修改的 List

unmodifiableMap(Map<? extends K, ? extends V> m)

  • 返回一个不可修改的 Map

unmodifiableSortedMap(SortedMap<K, ? extends V> m)

  • 返回一个不可修改的 SortedMap

unmodifiableNavigableMap(NavigableMap<K, ? extends V> m)

  • 返回一个不可修改的 NavigableMap

加锁

synchronizedCollection(Collection c)

  • 返回一个加锁的集合

synchronizedCollection(Collection c, Object mutex)

  • 返回一个加锁的集合,自己实现锁标志

synchronizedSet(Set s)

  • 返回一个加锁的 Set

synchronizedSet(Set s, Object mutex)

  • 返回一个加锁的 Set,自己实现锁标志

synchronizedSortedSet(SortedSet s)

  • 返回一个加锁的 SortedSet

synchronizedNavigableSet(NavigableSet s)

  • 返回一个加锁的 NavigableSet

synchronizedList(List list)

  • 返回一个加锁的 List

synchronizedList(List list, Object mutex)

  • 返回一个加锁的 List,自己实现锁标志

synchronizedMap(Map<K,V> m)

  • 返回一个加锁的 Map

synchronizedSortedMap(SortedMap<K,V> m)

  • 返回一个加锁的 SortedMap

synchronizedNavigableMap(NavigableMap<K,V> m)

  • 返回一个加锁的 NavigableMap

受检查的集合

checkedCollection(Collection c, Class type)

  • 返回一个受检查的集合

zeroLengthArray(Class type)

  • 返回一个零长度的数组

checkedQueue(Queue queue, Class type)

  • 返回一个受检查的 Queue

checkedSet(Set s, Class type)

  • 返回一个受检查的 Set

checkedSortedSet(SortedSet s, Class type)

  • 返回一个受检查的 SortedSet

checkedNavigableSet(NavigableSet s, Class type)

  • 返回一个受检查的 NavigableSet

checkedList(List list, Class type)

  • 返回一个受检查的 List

checkedMap(Map<K, V> m, Class keyType, Class valueType)

  • 返回一个受检查的 Map

checkedSortedMap(SortedMap<K, V> m, Class keyType, Class valueType)

  • 返回一个受检查的 SortedMap

checkedNavigableMap(NavigableMap<K, V> m, Class keyType, Class valueType)

  • 返回一个受检查的 NavigableMap

空值

emptyIterator()

  • 返回一个空的迭代器

emptyListIterator()

  • 返回一个空的 List 迭代器

emptyEnumeration()

  • 返回一个空的 Enumeration 迭代器

emptySet()

  • 返回一个空的 Set

emptySortedSet()

  • 返回一个空的 SortedSet

emptyNavigableSet()

  • 返回一个空的 NavigableSet

emptyList()

  • 返回一个空的 List

emptyMap()

  • 返回一个空的 Map

emptySortedMap

  • 返回一个空的 SortedMap

emptyNavigableMap()

  • 返回一个空的 NavigableMap

singleton

singleton(T o)

  • 返回只有一个元素的 Set

singletonList(T o)

  • 返回只有一个元素的 List

singletonMap(K key, V value

  • 返回只有一个元素的 Map

其他

nCopies(int n, T o)

  • 返回一个填充了同一个元素的 List

reverseOrder()

  • 返回一个排序规则器

reverseOrder(Comparator cmp)

  • 返回一个相反的排序规则器

enumeration(final Collection c)

  • 返回一个集合的 Enumeration

list(Enumeration e)

  • Enumeration 转换成 ArrayList

frequency(Collection<?> c, Object o)

  • 统计集合里包含的某个元素个数

disjoint(Collection c1, Collection c2)

  • 集合没有相同的元素

addAll(Collection<? super T> c, T... elements)

  • 向集合添加元素,全部添加成功返回 true

newSetFromMap(Map<E, Boolean> map)

  • 方法调用返回的集合的映射支持

asLifoQueue(Deque deque)

  • 方法用于获取一个 Deque 视图,作为一个后进先出(LIFO)队列

LICENSE