|
1 | 1 | # java-util-collections-explain
|
2 |
| -explain for java.util.Collections |
| 2 | +explain for java.util.Collections(JDK 1.8) |
3 | 3 |
|
4 |
| -## sort(List<T> list) |
| 4 | +## 其他 |
| 5 | + |
| 6 | +### sort(List<T> list) |
5 | 7 |
|
6 | 8 | - `list` 排序
|
7 | 9 | - 实体需要实现 `Comparable` 接口
|
8 | 10 |
|
9 |
| -## sort(List<T> list, Comparator<? super T> c) |
| 11 | +### sort(List<T> list, Comparator<? super T> c) |
10 | 12 |
|
11 | 13 | - `list` 排序
|
12 | 14 | - 排序规则器 `Comparator`
|
13 | 15 |
|
14 |
| -## binarySearch(List<? extends Comparable<? super T>> list, T key) |
| 16 | +### binarySearch(List<? extends Comparable<? super T>> list, T key) |
15 | 17 |
|
16 | 18 | - `List` 实现了 `RandomAccess` 接口或者数量小于 `5000` 按照下标查找,其他情况按照迭代器查找。
|
17 | 19 |
|
18 |
| -## binarySearch(List<? extends T> list, T key, Comparator<? super T> c) |
| 20 | +### binarySearch(List<? extends T> list, T key, Comparator<? super T> c) |
19 | 21 |
|
20 | 22 | - 与 `binarySearch(List<? extends Comparable<? super T>> list, T key)` 不同的是是否有实现排序规则
|
21 | 23 |
|
22 |
| -## reverse(List<?> list) |
| 24 | +### reverse(List<?> list) |
23 | 25 |
|
24 | 26 | - `list` 反序
|
25 | 27 | - `List` 实现了 `RandomAccess` 接口或者数量小于 `18` ,循环一半去调换位置的值, 其他情况使用迭代器。
|
26 | 28 |
|
27 |
| -## shuffle(List<?> list) |
| 29 | +### shuffle(List<?> list) |
28 | 30 |
|
29 | 31 | - 乱序 `list`
|
30 | 32 | - `List` 实现了 `RandomAccess` 接口或者数量小于 `5`,位置替换,其他情况使用迭代器。
|
31 | 33 |
|
32 |
| -## shuffle(List<?> list, Random rnd) |
| 34 | +### shuffle(List<?> list, Random rnd) |
33 | 35 |
|
34 | 36 | - 同 `shuffle(List<?> list)` 增加了参数 `Random`
|
35 | 37 |
|
| 38 | +### swap(List<?> list, int i, int j) |
| 39 | + |
| 40 | +- 调换元素值的位置 |
| 41 | + |
| 42 | +### fill(List<? super T> list, T obj) |
| 43 | + |
| 44 | +- 填充 `List` |
| 45 | +- `List` 实现了 `RandomAccess` 接口或者数量小于 `25` 直接填充,其他情况使用迭代器。 |
| 46 | + |
| 47 | +### copy(List<? super T> dest, List<? extends T> src) |
| 48 | + |
| 49 | +- 拷贝一个 `List` 的元素到另外一个 `List` |
| 50 | +- 源 `List` 长度补得大于目标 `List` 长度 |
| 51 | +- 源 `List` 长度少于 `10` 或者 源 `List` 和 目标 `List` 都实现了 `RandomAccess` 接口,使用下标直接拷贝设置,其他情况使用迭代器 |
| 52 | + |
| 53 | +### min(Collection<? extends T> coll) |
| 54 | + |
| 55 | +- 查询集合内最小值 |
| 56 | + |
| 57 | +### min(Collection<? extends T> coll, Comparator<? super T> comp) |
| 58 | + |
| 59 | +- 查询集合内最小值 |
| 60 | +- 自己实现了比较器 |
| 61 | + |
| 62 | +### max(Collection<? extends T> coll) |
| 63 | + |
| 64 | +- 查询集合内最大值 |
| 65 | + |
| 66 | +### max(Collection<? extends T> coll, Comparator<? super T> comp) |
| 67 | + |
| 68 | +- 查询集合内最大值 |
| 69 | +- 自己实现了比较器 |
| 70 | + |
| 71 | +### rotate(List<?> list, int distance) |
| 72 | + |
| 73 | +- 将 `List` 向右移动 `distance` 个位置,负数向左移动. |
| 74 | +- `List` 都实现了 `RandomAccess` 接口或者长度小于 `100`,使用硬编码的设置位置的值.其他的递归式的调换,类似归并排序. |
| 75 | + |
| 76 | +### replaceAll(List<T> list, T oldVal, T newVal) |
| 77 | + |
| 78 | +- 替换 `List` 内容为新的值 |
| 79 | +- `List` 长度小于 `11` 或者实现了 `RandomAccess` 接口,使用下标去查找设置,其他按照迭代器设置. |
| 80 | + |
| 81 | +### indexOfSubList(List<?> source, List<?> target) |
| 82 | + |
| 83 | +- 目标 `List` 是否是 源 `List` 的子集,返回子集的下标. |
| 84 | +- 源 `List` 长度少于 `35`, 或者 目标 `List` 和 源 `List` 都实现了 `RandomAccess` 接口, 采用下标形式遍历,其他采用迭代器遍历. |
| 85 | + |
| 86 | +### lastIndexOfSubList(List<?> source, List<?> target) |
| 87 | + |
| 88 | +- 同 `indexOfSubList(List<?> source, List<?> target)`,反向查找 |
| 89 | + |
| 90 | +## 不可修改 |
| 91 | + |
| 92 | +### unmodifiableCollection(Collection<? extends T> c) |
| 93 | + |
| 94 | +- 返回一个不可修改的集合,不能添加删除元素. |
| 95 | + |
| 96 | +### unmodifiableSet(Set<? extends T> s) |
| 97 | + |
| 98 | +- 返回一个不可修改的 `Set` |
| 99 | + |
| 100 | +### unmodifiableSortedSet(SortedSet<T> s) |
| 101 | + |
| 102 | +- 返回一个不可修改的排序 `Set` |
| 103 | + |
| 104 | +### unmodifiableNavigableSet(NavigableSet<T> s) |
| 105 | + |
| 106 | +- 返回一个不可修改的 `NavigableSet` |
| 107 | + |
| 108 | +### unmodifiableList(List<? extends T> list) |
| 109 | + |
| 110 | +- 返回一个不可修改的 `List` |
| 111 | + |
| 112 | +### unmodifiableMap(Map<? extends K, ? extends V> m) |
| 113 | + |
| 114 | +- 返回一个不可修改的 `Map` |
| 115 | + |
| 116 | +### unmodifiableSortedMap(SortedMap<K, ? extends V> m) |
| 117 | + |
| 118 | +- 返回一个不可修改的 `SortedMap` |
| 119 | + |
| 120 | +### unmodifiableNavigableMap(NavigableMap<K, ? extends V> m) |
| 121 | + |
| 122 | +- 返回一个不可修改的 `NavigableMap` |
| 123 | + |
| 124 | +## 加锁 |
| 125 | + |
| 126 | +### synchronizedCollection(Collection<T> c) |
| 127 | + |
| 128 | +- 返回一个加锁的集合 |
| 129 | + |
| 130 | +### synchronizedCollection(Collection<T> c, Object mutex) |
| 131 | + |
| 132 | +- 返回一个加锁的集合,自己实现锁标志 |
| 133 | + |
| 134 | +### synchronizedSet(Set<T> s) |
| 135 | + |
| 136 | +- 返回一个加锁的 `Set` |
| 137 | + |
| 138 | +### synchronizedSet(Set<T> s, Object mutex) |
| 139 | + |
| 140 | +- 返回一个加锁的 `Set`,自己实现锁标志 |
| 141 | + |
| 142 | +### synchronizedSortedSet(SortedSet<T> s) |
| 143 | + |
| 144 | +- 返回一个加锁的 `SortedSet` |
| 145 | + |
| 146 | +### synchronizedNavigableSet(NavigableSet<T> s) |
| 147 | + |
| 148 | +- 返回一个加锁的 `NavigableSet` |
| 149 | + |
| 150 | +### synchronizedList(List<T> list) |
| 151 | + |
| 152 | +- 返回一个加锁的 `List` |
| 153 | + |
| 154 | +### synchronizedList(List<T> list, Object mutex) |
| 155 | + |
| 156 | +- 返回一个加锁的 `List`,自己实现锁标志 |
| 157 | + |
| 158 | +### synchronizedMap(Map<K,V> m) |
| 159 | + |
| 160 | +- 返回一个加锁的 `Map` |
| 161 | + |
| 162 | +### synchronizedSortedMap(SortedMap<K,V> m) |
| 163 | + |
| 164 | +- 返回一个加锁的 `SortedMap` |
| 165 | + |
| 166 | +### synchronizedNavigableMap(NavigableMap<K,V> m) |
| 167 | + |
| 168 | +- 返回一个加锁的 `NavigableMap` |
| 169 | + |
| 170 | +## 受检查的集合 |
| 171 | + |
| 172 | +### checkedCollection(Collection<E> c, Class<E> type) |
| 173 | + |
| 174 | +- 返回一个受检查的集合 |
| 175 | + |
| 176 | +### zeroLengthArray(Class<T> type) |
| 177 | + |
| 178 | +- 返回一个零长度的数组 |
| 179 | + |
| 180 | +### checkedQueue(Queue<E> queue, Class<E> type) |
| 181 | + |
| 182 | +- 返回一个受检查的 `Queue` |
| 183 | + |
| 184 | +### checkedSet(Set<E> s, Class<E> type) |
| 185 | + |
| 186 | +- 返回一个受检查的 `Set` |
| 187 | + |
| 188 | +### checkedSortedSet(SortedSet<E> s, Class<E> type) |
| 189 | + |
| 190 | +- 返回一个受检查的 `SortedSet` |
| 191 | + |
| 192 | +### checkedNavigableSet(NavigableSet<E> s, Class<E> type) |
| 193 | + |
| 194 | +- 返回一个受检查的 `NavigableSet` |
| 195 | + |
| 196 | +### checkedList(List<E> list, Class<E> type) |
| 197 | + |
| 198 | +- 返回一个受检查的 `List` |
| 199 | + |
| 200 | +### checkedMap(Map<K, V> m, Class<K> keyType, Class<V> valueType) |
| 201 | + |
| 202 | +- 返回一个受检查的 `Map` |
| 203 | + |
| 204 | +### checkedSortedMap(SortedMap<K, V> m, Class<K> keyType, Class<V> valueType) |
| 205 | + |
| 206 | +- 返回一个受检查的 `SortedMap` |
| 207 | + |
| 208 | +### checkedNavigableMap(NavigableMap<K, V> m, Class<K> keyType, Class<V> valueType) |
| 209 | + |
| 210 | +- 返回一个受检查的 `NavigableMap` |
| 211 | + |
| 212 | +## 空值 |
| 213 | + |
| 214 | +### emptyIterator() |
| 215 | + |
| 216 | +- 返回一个空的迭代器 |
| 217 | + |
| 218 | +### emptyListIterator() |
| 219 | + |
| 220 | +- 返回一个空的 `List` 迭代器 |
| 221 | + |
| 222 | +### emptyEnumeration() |
| 223 | + |
| 224 | +- 返回一个空的 `Enumeration` 迭代器 |
| 225 | + |
| 226 | +### emptySet() |
| 227 | + |
| 228 | +- 返回一个空的 `Set` |
| 229 | + |
| 230 | +### emptySortedSet() |
| 231 | + |
| 232 | +- 返回一个空的 `SortedSet` |
| 233 | + |
| 234 | +### emptyNavigableSet() |
| 235 | + |
| 236 | +- 返回一个空的 `NavigableSet` |
| 237 | + |
| 238 | +### emptyList() |
| 239 | + |
| 240 | +- 返回一个空的 `List` |
| 241 | + |
| 242 | +### emptyMap() |
| 243 | + |
| 244 | +- 返回一个空的 `Map` |
| 245 | + |
| 246 | +### emptySortedMap |
| 247 | + |
| 248 | +- 返回一个空的 `SortedMap` |
| 249 | + |
| 250 | +### emptyNavigableMap() |
| 251 | + |
| 252 | +- 返回一个空的 `NavigableMap` |
| 253 | + |
| 254 | +## singleton |
| 255 | + |
| 256 | +### singleton(T o) |
| 257 | + |
| 258 | +- 返回只有一个元素的 `Set` |
| 259 | + |
| 260 | +### singletonList(T o) |
| 261 | + |
| 262 | +- 返回只有一个元素的 `List` |
| 263 | + |
| 264 | +### singletonMap(K key, V value |
| 265 | + |
| 266 | +- 返回只有一个元素的 `Map` |
| 267 | + |
| 268 | +## 其他 |
| 269 | + |
| 270 | +### nCopies(int n, T o) |
| 271 | + |
| 272 | +- 返回一个填充了同一个元素的 `List` |
| 273 | + |
| 274 | +### reverseOrder() |
| 275 | + |
| 276 | +- 返回一个排序规则器 |
| 277 | + |
| 278 | +### reverseOrder(Comparator<T> cmp) |
| 279 | + |
| 280 | +- 返回一个相反的排序规则器 |
| 281 | + |
| 282 | +### enumeration(final Collection<T> c) |
| 283 | + |
| 284 | +- 返回一个集合的 `Enumeration` |
| 285 | + |
| 286 | +### list(Enumeration<T> e) |
| 287 | + |
| 288 | +- `Enumeration` 转换成 `ArrayList` |
| 289 | + |
| 290 | +### frequency(Collection<?> c, Object o) |
| 291 | + |
| 292 | +- 统计集合里包含的某个元素个数 |
| 293 | + |
| 294 | +### disjoint(Collection<?> c1, Collection<?> c2) |
| 295 | + |
| 296 | +- 集合没有相同的元素 |
| 297 | + |
| 298 | +### addAll(Collection<? super T> c, T... elements) |
| 299 | + |
| 300 | +- 向集合添加元素,全部添加成功返回 `true` |
| 301 | + |
| 302 | +### newSetFromMap(Map<E, Boolean> map) |
| 303 | + |
| 304 | +- 方法调用返回的集合的映射支持 |
| 305 | + |
| 306 | +### asLifoQueue(Deque<T> deque) |
| 307 | + |
| 308 | +- 方法用于获取一个 `Deque` 视图,作为一个后进先出(`LIFO`)队列 |
36 | 309 |
|
37 | 310 | ## LICENSE
|
38 | 311 |
|
|
0 commit comments