クラス CollectionUtils

java.lang.ObjectSE
org.springframework.util.CollectionUtils

public abstract class CollectionUtils extends ObjectSE
色々なコレクションユーティリティメソッド。主にフレームワーク内での内部利用を目的としています。
導入:
1.1.3
作成者:
Juergen Hoeller, Rob Harrop, Arjen Poutsma, Sam Brannen
  • コンストラクターの詳細

    • CollectionUtils

      public CollectionUtils()
  • メソッドの詳細

    • isEmpty

      @Contract("null -> true") public static boolean isEmpty(@Nullable CollectionSE<? extends @Nullable ObjectSE> collection)
      指定されたコレクションが null または空の場合、true を返します。それ以外の場合は、false を返します。
      パラメーター:
      collection - チェックするコレクション
      戻り値:
      指定されたコレクションが空かどうか
    • isEmpty

      @Contract("null -> true") public static boolean isEmpty(@Nullable MapSE<?, ? extends @Nullable ObjectSE> map)
      指定されたマップが null または空の場合、true を返します。それ以外の場合は、false を返します。
      パラメーター:
      map - チェックするマップ
      戻り値:
      指定されたマップが空かどうか
    • newHashMap

      public static <K,V> HashMapSE<K,V> newHashMap(int expectedSize)
      すぐにサイズ変更 / 再ハッシュ操作を行うことなく、指定された数の要素に対応できる初期容量で新しい HashMapSE をインスタンス化します。

      これは、負荷係数に関連して初期容量を取得するが、JDK の ConcurrentHashMap(int)SE と効果的に整合する通常の HashMapSE コンストラクターとは異なります。

      パラメーター:
      expectedSize - 予想される要素数 (サイズ変更 / 再ハッシュ操作が不要になるように、対応する容量が導出されます)
      導入:
      5.3
      関連事項:
    • newLinkedHashMap

      public static <K, V extends @Nullable ObjectSE> LinkedHashMapSE<K,V> newLinkedHashMap(int expectedSize)
      すぐにサイズ変更 / 再ハッシュ操作を行うことなく、指定された数の要素に対応できる初期容量で新しい LinkedHashMapSE をインスタンス化します。

      これは、負荷係数を基準とした初期容量を取る通常の LinkedHashMapSE コンストラクターとは異なりますが、Spring 独自の LinkedCaseInsensitiveMap および LinkedMultiValueMap コンストラクターのセマンティクスと一致しています。

      パラメーター:
      expectedSize - 予想される要素数 (サイズ変更 / 再ハッシュ操作が不要になるように、対応する容量が導出されます)
      導入:
      5.3
      関連事項:
    • newHashSet

      public static <E> HashSetSE<E> newHashSet(int expectedSize)
      すぐにサイズ変更 / 再ハッシュ操作を行うことなく、指定された数の要素に対応できる初期容量で新しい HashSetSE をインスタンス化します。
      パラメーター:
      expectedSize - 予想される要素数 (サイズ変更 / 再ハッシュ操作が不要になるように、対応する容量が導出されます)
      導入:
      6.2
      関連事項:
    • newLinkedHashSet

      public static <E> LinkedHashSetSE<E> newLinkedHashSet(int expectedSize)
      すぐにサイズ変更 / 再ハッシュ操作を行うことなく、指定された数の要素に対応できる初期容量で新しい LinkedHashSetSE をインスタンス化します。
      パラメーター:
      expectedSize - 予想される要素数 (サイズ変更 / 再ハッシュ操作が不要になるように、対応する容量が導出されます)
      導入:
      6.2
      関連事項:
    • arrayToList

      public static ListSE<?> arrayToList(@Nullable ObjectSE source)
      指定された配列をリストに変換します。プリミティブ配列は、適切なラッパー型のリストに変換されます。

      注意 : 一般に、標準の Arrays.asList(T...)SE 方式を好みます。この arrayToList メソッドは、実行時に Object[] またはプリミティブ配列である可能性のある受信 Object 値を処理するためのものです。

      null ソース値は空のリストに変換されます。

      パラメーター:
      source - (潜在的にプリミティブな)配列
      戻り値:
      変換されたリストの結果
      関連事項:
    • mergeArrayIntoCollection

      public static <E> void mergeArrayIntoCollection(@Nullable ObjectSE array, CollectionSE<E> collection)
      指定された配列を指定されたコレクションにマージします。
      パラメーター:
      array - マージする配列 (null の場合があります)
      collection - 配列をマージするターゲットコレクション
    • mergePropertiesIntoMap

      public static <K,V> void mergePropertiesIntoMap(@Nullable PropertiesSE props, MapSE<K,V> map)
      指定された Properties インスタンスを指定された Map にマージし、すべてのプロパティ(キーと値のペア)をコピーします。

      Properties.propertyNames() を使用して、元の Properties インスタンスにリンクされたデフォルトプロパティをキャッチします。

      パラメーター:
      props - マージする Properties インスタンス (null の場合があります)
      map - プロパティをマージするターゲットマップ
    • contains

      @Contract("null, _ -> false") public static boolean contains(@Nullable IteratorSE<? extends @Nullable ObjectSE> iterator, @Nullable ObjectSE element)
      指定された IteratorSE に指定された要素が含まれているかどうかを確認します。
      パラメーター:
      iterator - チェックする Iterator 
      element - 探す要素
      戻り値:
      true が見つかった場合、false が見つからない場合
    • contains

      @Contract("null, _ -> false") public static boolean contains(@Nullable EnumerationSE<? extends @Nullable ObjectSE> enumeration, @Nullable ObjectSE element)
      指定された EnumerationSE に指定された要素が含まれているかどうかを確認します。
      パラメーター:
      enumeration - チェックする Enumeration 
      element - 探す要素
      戻り値:
      true が見つかった場合、false が見つからない場合
    • containsInstance

      @Contract("null, _ -> false") public static boolean containsInstance(@Nullable CollectionSE<? extends @Nullable ObjectSE> collection, @Nullable ObjectSE element)
      指定された CollectionSE に指定された要素インスタンスが含まれているかどうかを確認します。

      等しい要素に対して true を返すのではなく、指定されたインスタンスが存在するように強制します。

      パラメーター:
      collection - チェックする Collection 
      element - 探す要素
      戻り値:
      true が見つかった場合、false が見つからない場合
    • containsAny

      public static boolean containsAny(CollectionSE<? extends @Nullable ObjectSE> source, CollectionSE<? extends @Nullable ObjectSE> candidates)
      'candidates' の要素が 'source' に含まれている場合、true を返します。それ以外の場合は false を返します。
      パラメーター:
      source - ソース CollectionSE
      candidates - 検索する候補
      戻り値:
      候補が見つかったかどうか
    • findFirstMatch

      public static <E> @Nullable E findFirstMatch(CollectionSE<?> source, CollectionSE<E> candidates)
      'source' に含まれる 'candidates' の最初の要素を返します。"candidates" の要素が "source" に存在しない場合、null を返します。反復順序は CollectionSE 実装固有です。
      パラメーター:
      source - ソースコレクション
      candidates - 検索する候補
      戻り値:
      最初に存在するオブジェクト、または null が見つからない場合
    • findValueOfType

      @Contract("null, _ -> null") public static <T> @Nullable T findValueOfType(@Nullable CollectionSE<?> collection, @Nullable ClassSE<T> type)
      指定されたコレクションで指定された型の単一の値を見つけます。
      パラメーター:
      collection - 検索するコレクション
      type - 探す型
      戻り値:
      明確な一致がある場合は特定の型の値が見つかり、そのような値が見つからないか複数の場合は null 
    • findValueOfType

      public static @Nullable ObjectSE findValueOfType(CollectionSE<?> collection, ClassSE<?>[] types)
      指定されたコレクション内の指定された型のいずれかの単一の値を検索します。最初の型の値をコレクションで検索し、次に 2 番目の型の値を検索します。
      パラメーター:
      collection - 検索するコレクション
      types - 検索する型、優先順位順
      戻り値:
      明確な一致がある場合に見つかった指定された型のいずれかの値、またはそのような値が見つからないか複数の場合に null 
    • hasUniqueObject

      public static boolean hasUniqueObject(CollectionSE<?> collection)
      指定されたコレクションに単一の一意のオブジェクトのみが含まれているかどうかを判断します。
      パラメーター:
      collection - チェックするコレクション
      戻り値:
      コレクションに同じインスタンスへの単一の参照または複数の参照が含まれる場合は true、そうでない場合は false 
    • findCommonElementType

      public static @Nullable ClassSE<?> findCommonElementType(CollectionSE<?> collection)
      指定されたコレクションの共通要素型があれば、それを見つけます。
      パラメーター:
      collection - チェックするコレクション
      戻り値:
      共通要素型、または明確な共通型が見つからない場合は null (またはコレクションが空でした)
    • firstElement

      @Contract("null -> null") public static <T> @Nullable T firstElement(@Nullable SetSE<T> set)
      SortedSet.first() またはイテレータを使用して、指定されたセットの最初の要素を取得します。
      パラメーター:
      set - チェックするセット (null または空の場合があります)
      戻り値:
      最初の要素、または存在しない場合は null 
      導入:
      5.2.3
      関連事項:
    • firstElement

      @Contract("null -> null") public static <T> @Nullable T firstElement(@Nullable ListSE<T> list)
      ゼロインデックスにアクセスして、指定されたリストの最初の要素を取得します。
      パラメーター:
      list - 確認するリスト (null または空の場合があります)
      戻り値:
      最初の要素、または存在しない場合は null 
      導入:
      5.2.3
    • lastElement

      @Contract("null -> null") public static <T> @Nullable T lastElement(@Nullable SetSE<T> set)
      SortedSet.last() を使用するか、他の方法ですべての要素を反復する(リンクされたセットを想定)、指定されたセットの最後の要素を取得します。
      パラメーター:
      set - チェックするセット (null または空の場合があります)
      戻り値:
      最後の要素、または存在しない場合は null 
      導入:
      5.0.3
      関連事項:
    • lastElement

      @Contract("null -> null") public static <T> @Nullable T lastElement(@Nullable ListSE<T> list)
      指定されたリストの最後の要素を取得し、最高のインデックスにアクセスします。
      パラメーター:
      list - 確認するリスト (null または空の場合があります)
      戻り値:
      最後の要素、または存在しない場合は null 
      導入:
      5.0.3
    • toArray

      public static <A, E extends A> A[] toArray(EnumerationSE<E> enumeration, A[] array)
      指定された列挙の要素を指定された型の配列にマーシャリングします。列挙要素は、指定された配列の型に割り当て可能でなければなりません。返される配列は、指定された配列とは異なるインスタンスになります。
    • toIterator

      public static <E> IteratorSE<E> toIterator(@Nullable EnumerationSE<E> enumeration)
      EnumerationSEIteratorSE に適合させます。
      パラメーター:
      enumeration - 元の Enumeration
      戻り値:
      適応した Iterator
    • toMultiValueMap

      public static <K,V> MultiValueMap<K,V> toMultiValueMap(MapSE<K,ListSE<V>> targetMap)
      Map<K, List<V>> を MultiValueMap<K, V> に適合させます。
      パラメーター:
      targetMap - 元の地図
      戻り値:
      適応された多値マップ (元のマップをラップする)
      導入:
      3.1
    • unmodifiableMultiValueMap

      public static <K,V> MultiValueMap<K,V> unmodifiableMultiValueMap(MultiValueMap<? extends K, ? extends V> targetMap)
      指定された複数値マップの変更不可能なビューを返します。
      パラメーター:
      targetMap - 変更不可能なビューが返されるマップ。
      戻り値:
      指定された複数値マップの変更不可能なビュー
      導入:
      3.1
    • compositeMap

      public static <K,V> MapSE<K,V> compositeMap(MapSE<K,V> first, MapSE<K,V> second)
      提供された 2 つのマップを組み合わせた (部分的に変更不可能な) マップを返します。返されたマップで Map.put(Object, Object)SE または Map.putAll(Map)SE を呼び出すと、UnsupportedOperationExceptionSE が生成されます。

      キーの衝突が発生した場合、first が second よりも優先されます。つまり、first によってもマップされているキーを持つ second のエントリは実質的に無視されます。

      パラメーター:
      first - 最初に作成した地図
      second - 2 番目に作成するマップ
      戻り値:
      与えられた 2 つのマップを合成する新しいマップ
      導入:
      6.2
    • compositeMap

      public static <K,V> MapSE<K,V> compositeMap(MapSE<K,V> first, MapSE<K,V> second, @Nullable BiFunctionSE<K,V,V> putFunction, @Nullable ConsumerSE<MapSE<K,V>> putAllFunction)
      提供されたマップを組み合わせたマップを返します。返されたマップで Map.put(Object, Object)SE を呼び出すと、putFunction が適用されるか、UnsupportedOperationExceptionSE putFunction が null としてスローされます。同じことが Map.putAll(Map)SE と putAllFunction にも当てはまります。

      キーの衝突が発生した場合、first が second よりも優先されます。つまり、first によってもマップされているキーを持つ second のエントリは実質的に無視されます。

      パラメーター:
      first - 最初に作成した地図
      second - 2 番目に作成するマップ
      putFunction - Map::put が呼び出されたときに適用されます。null の場合、Map::put は UnsupportedOperationException をスローします。
      putAllFunction - Map::putAll が呼び出されたときに適用されます。null の場合、Map::putAll は UnsupportedOperationException をスローします。
      戻り値:
      ギブマップを構成する新しいマップ
      導入:
      6.2