# Deprecated API

## Contents

- Interfaces
- Classes
- Methods
- Constructors

- Deprecated Interfaces
  Interface
  Description
  org.apache.commons.collections4.Closure
  Use `Consumer`.
  org.apache.commons.collections4.Factory
  Use `Supplier`.
  org.apache.commons.collections4.MultiMap
  since 4.1, use `MultiValuedMap` instead
  org.apache.commons.collections4.Predicate
  Use `Predicate`.
  org.apache.commons.collections4.Transformer
  Use `Function`.

- Deprecated Classes
  Class
  Description
  org.apache.commons.collections4.ArrayStack
  use `ArrayDeque` instead (available from Java 1.6)
  org.apache.commons.collections4.list.AbstractLinkedList
  use `AbstractLinkedListJava21` instead
  org.apache.commons.collections4.list.CursorableLinkedList
  parent `AbstractLinkedList` is source incompatible with List methods added in Java 21
  org.apache.commons.collections4.list.NodeCachingLinkedList
  parent `AbstractLinkedList` is source incompatible with List methods added in Java 21
  org.apache.commons.collections4.map.MultiValueMap
  since 4.1, use `MultiValuedMap` instead

- Deprecated Methods
  Method
  Description
  org.apache.commons.collections4.CollectionUtils.cardinality(O, Iterable<? super O>)
  since 4.1, use `IterableUtils.frequency(Iterable, Object)` instead. Be aware that the order of parameters has changed.
  org.apache.commons.collections4.CollectionUtils.countMatches(Iterable<C>, Predicate<? super C>)
  since 4.1, use `IterableUtils.countMatches(Iterable, Predicate)` instead
  org.apache.commons.collections4.CollectionUtils.exists(Iterable<C>, Predicate<? super C>)
  since 4.1, use `IterableUtils.matchesAny(Iterable, Predicate)` instead
  org.apache.commons.collections4.CollectionUtils.find(Iterable<T>, Predicate<? super T>)
  since 4.1, use `IterableUtils.find(Iterable, Predicate)` instead
  org.apache.commons.collections4.CollectionUtils.forAllButLastDo(Iterable<T>, C)
  since 4.1, use `IterableUtils.forEachButLast(Iterable, Closure)` instead
  org.apache.commons.collections4.CollectionUtils.forAllButLastDo(Iterator<T>, C)
  since 4.1, use `IteratorUtils.forEachButLast(Iterator, Closure)` instead
  org.apache.commons.collections4.CollectionUtils.forAllDo(Iterable<T>, C)
  since 4.1, use `IterableUtils.forEach(Iterable, Closure)` instead
  org.apache.commons.collections4.CollectionUtils.forAllDo(Iterator<T>, C)
  since 4.1, use `IteratorUtils.forEach(Iterator, Closure)` instead
  org.apache.commons.collections4.CollectionUtils.get(Iterable<T>, int)
  since 4.1, use `IterableUtils.get(Iterable, int)` instead
  org.apache.commons.collections4.CollectionUtils.get(Iterator<T>, int)
  since 4.1, use `IteratorUtils.get(Iterator, int)` instead
  org.apache.commons.collections4.CollectionUtils.matchesAll(Iterable<C>, Predicate<? super C>)
  since 4.1, use `IterableUtils.matchesAll(Iterable, Predicate)` instead
  org.apache.commons.collections4.CollectionUtils.synchronizedCollection(Collection<C>)
  since 4.1, use `Collections.synchronizedCollection(Collection)` instead
  org.apache.commons.collections4.CollectionUtils.unmodifiableCollection(Collection<? extends C>)
  since 4.1, use `Collections.unmodifiableCollection(Collection)` instead
  org.apache.commons.collections4.iterators.UnmodifiableListIterator.umodifiableListIterator(ListIterator<? extends E>)
  method name has typo in it. Use `UnmodifiableListIterator.unmodifiableListIterator(ListIterator)` instead.
  org.apache.commons.collections4.MapUtils.multiValueMap(Map<K, ? super Collection<V>>)
  since 4.1, use `MultiValuedMap` instead
  org.apache.commons.collections4.MapUtils.multiValueMap(Map<K, C>, Class<C>)
  since 4.1, use `MultiValuedMap` instead
  org.apache.commons.collections4.MapUtils.multiValueMap(Map<K, C>, Factory<C>)
  since 4.1, use `MultiValuedMap` instead
  org.apache.commons.collections4.TransformerUtils.switchTransformer(Predicate<? super I>, Transformer<? super I, ? extends O>, Transformer<? super I, ? extends O>)
  as of 4.1, use `TransformerUtils.ifTransformer(Predicate, Transformer, Transformer)`

- Deprecated Constructors
  Constructor
  Description
  org.apache.commons.collections4.IterableUtils()
  TODO Make private in 5.0.
  org.apache.commons.collections4.trie.analyzer.StringKeyAnalyzer()
  Use `StringKeyAnalyzer.INSTANCE`.