public abstract class org.springframework.util.CollectionUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.util.CollectionUtils
  super_class: java.lang.Object
{
  static final float DEFAULT_LOAD_FACTOR;
    descriptor: F
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0.75

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.CollectionUtils this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.util.CollectionUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/CollectionUtils;

  public static boolean isEmpty(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Collection collection
         0: .line 61
            aload 0 /* collection */
            ifnull 1
            aload 0 /* collection */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  collection  Ljava/util/Collection<*>;
    Signature: (Ljava/util/Collection<*>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  

  public static boolean isEmpty(java.util.Map<?, ?>);
    descriptor: (Ljava/util/Map;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Map map
         0: .line 71
            aload 0 /* map */
            ifnull 1
            aload 0 /* map */
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.util.Map map
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   map  Ljava/util/Map<**>;
    Signature: (Ljava/util/Map<**>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      map   

  public static <K, V> java.util.HashMap<K, V> newHashMap(int);
    descriptor: (I)Ljava/util/HashMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int expectedSize
         0: .line 88
            new java.util.HashMap
            dup
            iload 0 /* expectedSize */
            i2f
            ldc 0.75
            fdiv
            f2i
            ldc 0.75
            invokespecial java.util.HashMap.<init>:(IF)V
            areturn
        end local 0 // int expectedSize
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  expectedSize  I
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(I)Ljava/util/HashMap<TK;TV;>;
    MethodParameters:
              Name  Flags
      expectedSize  

  public static <K, V> java.util.LinkedHashMap<K, V> newLinkedHashMap(int);
    descriptor: (I)Ljava/util/LinkedHashMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int expectedSize
         0: .line 105
            new java.util.LinkedHashMap
            dup
            iload 0 /* expectedSize */
            i2f
            ldc 0.75
            fdiv
            f2i
            ldc 0.75
            invokespecial java.util.LinkedHashMap.<init>:(IF)V
            areturn
        end local 0 // int expectedSize
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  expectedSize  I
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(I)Ljava/util/LinkedHashMap<TK;TV;>;
    MethodParameters:
              Name  Flags
      expectedSize  

  public static java.util.List<?> arrayToList();
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object source
         0: .line 121
            aload 0 /* source */
            invokestatic org.springframework.util.ObjectUtils.toObjectArray:(Ljava/lang/Object;)[Ljava/lang/Object;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // java.lang.Object source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  source  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/List<*>;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      source  

  public static <E> void mergeArrayIntoCollection(, java.util.Collection<E>);
    descriptor: (Ljava/lang/Object;Ljava/util/Collection;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.Object array
        start local 1 // java.util.Collection collection
         0: .line 131
            aload 0 /* array */
            invokestatic org.springframework.util.ObjectUtils.toObjectArray:(Ljava/lang/Object;)[Ljava/lang/Object;
            astore 2 /* arr */
        start local 2 // java.lang.Object[] arr
         1: .line 132
            aload 2 /* arr */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: java.lang.Object java.util.Collection java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* elem */
        start local 3 // java.lang.Object elem
         3: .line 133
            aload 1 /* collection */
            aload 3 /* elem */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Object elem
         4: .line 132
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 135
            return
        end local 2 // java.lang.Object[] arr
        end local 1 // java.util.Collection collection
        end local 0 // java.lang.Object array
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0       array  Ljava/lang/Object;
            0    7     1  collection  Ljava/util/Collection<TE;>;
            1    7     2         arr  [Ljava/lang/Object;
            3    4     3        elem  Ljava/lang/Object;
    Signature: <E:Ljava/lang/Object;>(Ljava/lang/Object;Ljava/util/Collection<TE;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
            Name  Flags
      array       
      collection  

  public static <K, V> void mergePropertiesIntoMap(java.util.Properties, java.util.Map<K, V>);
    descriptor: (Ljava/util/Properties;Ljava/util/Map;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.util.Properties props
        start local 1 // java.util.Map map
         0: .line 147
            aload 0 /* props */
            ifnull 9
         1: .line 148
            aload 0 /* props */
            invokevirtual java.util.Properties.propertyNames:()Ljava/util/Enumeration;
            astore 2 /* en */
        start local 2 // java.util.Enumeration en
         2: goto 8
         3: .line 149
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 2 /* en */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* key */
        start local 3 // java.lang.String key
         4: .line 150
            aload 0 /* props */
            aload 3 /* key */
            invokevirtual java.util.Properties.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         5: .line 151
            aload 4 /* value */
            ifnonnull 7
         6: .line 153
            aload 0 /* props */
            aload 3 /* key */
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* value */
         7: .line 155
      StackMap locals: java.lang.String java.lang.Object
      StackMap stack:
            aload 1 /* map */
            aload 3 /* key */
            aload 4 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.Object value
        end local 3 // java.lang.String key
         8: .line 148
      StackMap locals:
      StackMap stack:
            aload 2 /* en */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        end local 2 // java.util.Enumeration en
         9: .line 158
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Map map
        end local 0 // java.util.Properties props
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0  props  Ljava/util/Properties;
            0   10     1    map  Ljava/util/Map<TK;TV;>;
            2    9     2     en  Ljava/util/Enumeration<*>;
            4    8     3    key  Ljava/lang/String;
            5    8     4  value  Ljava/lang/Object;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Properties;Ljava/util/Map<TK;TV;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
       Name  Flags
      props  
      map    

  public static boolean contains(java.util.Iterator<?>, );
    descriptor: (Ljava/util/Iterator;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Iterator iterator
        start local 1 // java.lang.Object element
         0: .line 168
            aload 0 /* iterator */
            ifnull 6
         1: .line 169
            goto 5
         2: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         3: .line 171
            aload 2 /* candidate */
            aload 1 /* element */
            invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 5
         4: .line 172
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
         5: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 176
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object element
        end local 0 // java.util.Iterator iterator
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0   iterator  Ljava/util/Iterator<*>;
            0    7     1    element  Ljava/lang/Object;
            3    5     2  candidate  Ljava/lang/Object;
    Signature: (Ljava/util/Iterator<*>;Ljava/lang/Object;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
          Name  Flags
      iterator  
      element   

  public static boolean contains(java.util.Enumeration<?>, );
    descriptor: (Ljava/util/Enumeration;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Enumeration enumeration
        start local 1 // java.lang.Object element
         0: .line 186
            aload 0 /* enumeration */
            ifnull 6
         1: .line 187
            goto 5
         2: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         3: .line 189
            aload 2 /* candidate */
            aload 1 /* element */
            invokestatic org.springframework.util.ObjectUtils.nullSafeEquals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 5
         4: .line 190
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
         5: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 2
         6: .line 194
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object element
        end local 0 // java.util.Enumeration enumeration
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0  enumeration  Ljava/util/Enumeration<*>;
            0    7     1      element  Ljava/lang/Object;
            3    5     2    candidate  Ljava/lang/Object;
    Signature: (Ljava/util/Enumeration<*>;Ljava/lang/Object;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
             Name  Flags
      enumeration  
      element      

  public static boolean containsInstance(java.util.Collection<?>, );
    descriptor: (Ljava/util/Collection;Ljava/lang/Object;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Collection collection
        start local 1 // java.lang.Object element
         0: .line 206
            aload 0 /* collection */
            ifnull 6
         1: .line 207
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.util.Collection java.lang.Object top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         3: .line 208
            aload 2 /* candidate */
            aload 1 /* element */
            if_acmpne 5
         4: .line 209
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
         5: .line 207
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 213
      StackMap locals: java.util.Collection java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object element
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  collection  Ljava/util/Collection<*>;
            0    7     1     element  Ljava/lang/Object;
            3    5     2   candidate  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;Ljava/lang/Object;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
            Name  Flags
      collection  
      element     

  public static boolean containsAny(java.util.Collection<?>, java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.Collection source
        start local 1 // java.util.Collection candidates
         0: .line 224
            aload 0 /* source */
            aload 1 /* candidates */
            invokestatic org.springframework.util.CollectionUtils.findFirstMatch:(Ljava/util/Collection;Ljava/util/Collection;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.util.Collection candidates
        end local 0 // java.util.Collection source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0      source  Ljava/util/Collection<*>;
            0    2     1  candidates  Ljava/util/Collection<*>;
    Signature: (Ljava/util/Collection<*>;Ljava/util/Collection<*>;)Z
    MethodParameters:
            Name  Flags
      source      
      candidates  

  public static <E> E findFirstMatch(java.util.Collection<?>, java.util.Collection<E>);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.util.Collection source
        start local 1 // java.util.Collection candidates
         0: .line 239
            aload 0 /* source */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifne 1
            aload 1 /* candidates */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 240
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 242
      StackMap locals:
      StackMap stack:
            aload 1 /* candidates */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: java.util.Collection java.util.Collection top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         4: .line 243
            aload 0 /* source */
            aload 2 /* candidate */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 244
            aload 2 /* candidate */
            areturn
        end local 2 // java.lang.Object candidate
         6: .line 242
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 247
            aconst_null
            areturn
        end local 1 // java.util.Collection candidates
        end local 0 // java.util.Collection source
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0      source  Ljava/util/Collection<*>;
            0    8     1  candidates  Ljava/util/Collection<TE;>;
            4    6     2   candidate  Ljava/lang/Object;
    Signature: <E:Ljava/lang/Object;>(Ljava/util/Collection<*>;Ljava/util/Collection<TE;>;)TE;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      source      
      candidates  

  public static <T> T findValueOfType(java.util.Collection<?>, java.lang.Class<T>);
    descriptor: (Ljava/util/Collection;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.util.Collection collection
        start local 1 // java.lang.Class type
         0: .line 260
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 261
            aconst_null
            areturn
         2: .line 263
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* value */
        start local 2 // java.lang.Object value
         3: .line 264
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* element */
        start local 3 // java.lang.Object element
         5: .line 265
            aload 1 /* type */
            ifnull 6
            aload 1 /* type */
            aload 3 /* element */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 9
         6: .line 266
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object java.lang.Object java.util.Iterator
      StackMap stack:
            aload 2 /* value */
            ifnull 8
         7: .line 268
            aconst_null
            areturn
         8: .line 270
      StackMap locals:
      StackMap stack:
            aload 3 /* element */
            astore 2 /* value */
        end local 3 // java.lang.Object element
         9: .line 264
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        10: .line 273
            aload 2 /* value */
            areturn
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Class type
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0  collection  Ljava/util/Collection<*>;
            0   11     1        type  Ljava/lang/Class<TT;>;
            3   11     2       value  TT;
            5    9     3     element  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<*>;Ljava/lang/Class<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      type        

  public static  findValueOfType(java.util.Collection<?>, java.lang.Class<?>[]);
    descriptor: (Ljava/util/Collection;[Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.util.Collection collection
        start local 1 // java.lang.Class[] types
         0: .line 287
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifne 1
            aload 1 /* types */
            invokestatic org.springframework.util.ObjectUtils.isEmpty:([Ljava/lang/Object;)Z
            ifeq 2
         1: .line 288
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 290
      StackMap locals:
      StackMap stack:
            aload 1 /* types */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.util.Collection java.lang.Class[] top int int java.lang.Class[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* type */
        start local 2 // java.lang.Class type
         4: .line 291
            aload 0 /* collection */
            aload 2 /* type */
            invokestatic org.springframework.util.CollectionUtils.findValueOfType:(Ljava/util/Collection;Ljava/lang/Class;)Ljava/lang/Object;
            astore 6 /* value */
        start local 6 // java.lang.Object value
         5: .line 292
            aload 6 /* value */
            ifnull 7
         6: .line 293
            aload 6 /* value */
            areturn
        end local 6 // java.lang.Object value
        end local 2 // java.lang.Class type
         7: .line 290
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 3
         9: .line 296
            aconst_null
            areturn
        end local 1 // java.lang.Class[] types
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0  collection  Ljava/util/Collection<*>;
            0   10     1       types  [Ljava/lang/Class;
            4    7     2        type  Ljava/lang/Class<*>;
            5    7     6       value  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;[Ljava/lang/Class<*>;)Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  
      types       

  public static boolean hasUniqueObject(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // java.util.Collection collection
         0: .line 306
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 307
            iconst_0
            ireturn
         2: .line 309
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* hasCandidate */
        start local 1 // boolean hasCandidate
         3: .line 310
            aconst_null
            astore 2 /* candidate */
        start local 2 // java.lang.Object candidate
         4: .line 311
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: java.util.Collection int java.lang.Object top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* elem */
        start local 3 // java.lang.Object elem
         6: .line 312
            iload 1 /* hasCandidate */
            ifne 10
         7: .line 313
            iconst_1
            istore 1 /* hasCandidate */
         8: .line 314
            aload 3 /* elem */
            astore 2 /* candidate */
         9: .line 315
            goto 12
        10: .line 316
      StackMap locals: java.util.Collection int java.lang.Object java.lang.Object java.util.Iterator
      StackMap stack:
            aload 2 /* candidate */
            aload 3 /* elem */
            if_acmpeq 12
        11: .line 317
            iconst_0
            ireturn
        end local 3 // java.lang.Object elem
        12: .line 311
      StackMap locals: java.util.Collection int java.lang.Object top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 320
            iconst_1
            ireturn
        end local 2 // java.lang.Object candidate
        end local 1 // boolean hasCandidate
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0    collection  Ljava/util/Collection<*>;
            3   14     1  hasCandidate  Z
            4   14     2     candidate  Ljava/lang/Object;
            6   12     3          elem  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
            Name  Flags
      collection  

  public static java.lang.Class<?> findCommonElementType(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Ljava/lang/Class;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.util.Collection collection
         0: .line 331
            aload 0 /* collection */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 332
            aconst_null
            areturn
         2: .line 334
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* candidate */
        start local 1 // java.lang.Class candidate
         3: .line 335
            aload 0 /* collection */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 11
      StackMap locals: java.util.Collection java.lang.Class top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* val */
        start local 2 // java.lang.Object val
         5: .line 336
            aload 2 /* val */
            ifnull 11
         6: .line 337
            aload 1 /* candidate */
            ifnonnull 9
         7: .line 338
            aload 2 /* val */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* candidate */
         8: .line 339
            goto 11
         9: .line 340
      StackMap locals: java.util.Collection java.lang.Class java.lang.Object java.util.Iterator
      StackMap stack:
            aload 1 /* candidate */
            aload 2 /* val */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 11
        10: .line 341
            aconst_null
            areturn
        end local 2 // java.lang.Object val
        11: .line 335
      StackMap locals: java.util.Collection java.lang.Class top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        12: .line 345
            aload 1 /* candidate */
            areturn
        end local 1 // java.lang.Class candidate
        end local 0 // java.util.Collection collection
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0  collection  Ljava/util/Collection<*>;
            3   13     1   candidate  Ljava/lang/Class<*>;
            5   11     2         val  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<*>;)Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      collection  

  public static <T> T firstElement(java.util.Set<T>);
    descriptor: (Ljava/util/Set;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.util.Set set
         0: .line 360
            aload 0 /* set */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 361
            aconst_null
            areturn
         2: .line 363
      StackMap locals:
      StackMap stack:
            aload 0 /* set */
            instanceof java.util.SortedSet
            ifeq 4
         3: .line 364
            aload 0 /* set */
            checkcast java.util.SortedSet
            invokeinterface java.util.SortedSet.first:()Ljava/lang/Object;
            areturn
         4: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* set */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* it */
        start local 1 // java.util.Iterator it
         5: .line 368
            aconst_null
            astore 2 /* first */
        start local 2 // java.lang.Object first
         6: .line 369
            aload 1 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 8
         7: .line 370
            aload 1 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* first */
         8: .line 372
      StackMap locals: java.util.Iterator java.lang.Object
      StackMap stack:
            aload 2 /* first */
            areturn
        end local 2 // java.lang.Object first
        end local 1 // java.util.Iterator it
        end local 0 // java.util.Set set
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0    set  Ljava/util/Set<TT;>;
            5    9     1     it  Ljava/util/Iterator<TT;>;
            6    9     2  first  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Set<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      set   

  public static <T> T firstElement(java.util.List<T>);
    descriptor: (Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 383
            aload 0 /* list */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 384
            aconst_null
            areturn
         2: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            areturn
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  list  Ljava/util/List<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/List<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      list  

  public static <T> T lastElement(java.util.Set<T>);
    descriptor: (Ljava/util/Set;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.util.Set set
         0: .line 401
            aload 0 /* set */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 402
            aconst_null
            areturn
         2: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* set */
            instanceof java.util.SortedSet
            ifeq 4
         3: .line 405
            aload 0 /* set */
            checkcast java.util.SortedSet
            invokeinterface java.util.SortedSet.last:()Ljava/lang/Object;
            areturn
         4: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* set */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* it */
        start local 1 // java.util.Iterator it
         5: .line 410
            aconst_null
            astore 2 /* last */
        start local 2 // java.lang.Object last
         6: .line 411
            goto 8
         7: .line 412
      StackMap locals: java.util.Iterator java.lang.Object
      StackMap stack:
            aload 1 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* last */
         8: .line 411
      StackMap locals:
      StackMap stack:
            aload 1 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
         9: .line 414
            aload 2 /* last */
            areturn
        end local 2 // java.lang.Object last
        end local 1 // java.util.Iterator it
        end local 0 // java.util.Set set
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0   set  Ljava/util/Set<TT;>;
            5   10     1    it  Ljava/util/Iterator<TT;>;
            6   10     2  last  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Set<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      set   

  public static <T> T lastElement(java.util.List<T>);
    descriptor: (Ljava/util/List;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 425
            aload 0 /* list */
            invokestatic org.springframework.util.CollectionUtils.isEmpty:(Ljava/util/Collection;)Z
            ifeq 2
         1: .line 426
            aconst_null
            areturn
         2: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* list */
            aload 0 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            areturn
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  list  Ljava/util/List<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/List<TT;>;)TT;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      list  

  public static <A, E extends A> A[] toArray(java.util.Enumeration<E>, );
    descriptor: (Ljava/util/Enumeration;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Enumeration enumeration
        start local 1 // java.lang.Object[] array
         0: .line 437
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* elements */
        start local 2 // java.util.ArrayList elements
         1: .line 438
            goto 3
         2: .line 439
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 2 /* elements */
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* enumeration */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 2
         4: .line 441
            aload 2 /* elements */
            aload 1 /* array */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 2 // java.util.ArrayList elements
        end local 1 // java.lang.Object[] array
        end local 0 // java.util.Enumeration enumeration
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  enumeration  Ljava/util/Enumeration<TE;>;
            0    5     1        array  [Ljava/lang/Object;
            1    5     2     elements  Ljava/util/ArrayList<TA;>;
    Signature: <A:Ljava/lang/Object;E:TA;>(Ljava/util/Enumeration<TE;>;[TA;)[TA;
    MethodParameters:
             Name  Flags
      enumeration  
      array        

  public static <E> java.util.Iterator<E> toIterator(java.util.Enumeration<E>);
    descriptor: (Ljava/util/Enumeration;)Ljava/util/Iterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Enumeration enumeration
         0: .line 450
            aload 0 /* enumeration */
            ifnull 1
            new org.springframework.util.CollectionUtils$EnumerationIterator
            dup
            aload 0 /* enumeration */
            invokespecial org.springframework.util.CollectionUtils$EnumerationIterator.<init>:(Ljava/util/Enumeration;)V
            goto 2
      StackMap locals:
      StackMap stack:
         1: invokestatic java.util.Collections.emptyIterator:()Ljava/util/Iterator;
      StackMap locals:
      StackMap stack: java.util.Iterator
         2: areturn
        end local 0 // java.util.Enumeration enumeration
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  enumeration  Ljava/util/Enumeration<TE;>;
    Signature: <E:Ljava/lang/Object;>(Ljava/util/Enumeration<TE;>;)Ljava/util/Iterator<TE;>;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      enumeration  

  public static <K, V> org.springframework.util.MultiValueMap<K, V> toMultiValueMap(java.util.Map<K, java.util.List<V>>);
    descriptor: (Ljava/util/Map;)Lorg/springframework/util/MultiValueMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Map targetMap
         0: .line 460
            new org.springframework.util.MultiValueMapAdapter
            dup
            aload 0 /* targetMap */
            invokespecial org.springframework.util.MultiValueMapAdapter.<init>:(Ljava/util/Map;)V
            areturn
        end local 0 // java.util.Map targetMap
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  targetMap  Ljava/util/Map<TK;Ljava/util/List<TV;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Map<TK;Ljava/util/List<TV;>;>;)Lorg/springframework/util/MultiValueMap<TK;TV;>;
    MethodParameters:
           Name  Flags
      targetMap  

  public static <K, V> org.springframework.util.MultiValueMap<K, V> unmodifiableMultiValueMap(org.springframework.util.MultiValueMap<? extends K, ? extends V>);
    descriptor: (Lorg/springframework/util/MultiValueMap;)Lorg/springframework/util/MultiValueMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.springframework.util.MultiValueMap targetMap
         0: .line 473
            aload 0 /* targetMap */
            ldc "'targetMap' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 474
            aload 0 /* targetMap */
            invokeinterface org.springframework.util.MultiValueMap.size:()I
            invokestatic org.springframework.util.CollectionUtils.newLinkedHashMap:(I)Ljava/util/LinkedHashMap;
            astore 1 /* result */
        start local 1 // java.util.Map result
         2: .line 475
            aload 0 /* targetMap */
            aload 1 /* result */
            invokedynamic accept(Ljava/util/Map;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  org/springframework/util/CollectionUtils.lambda$0(Ljava/util/Map;Ljava/lang/Object;Ljava/util/List;)V (6)
                  (Ljava/lang/Object;Ljava/util/List;)V
            invokeinterface org.springframework.util.MultiValueMap.forEach:(Ljava/util/function/BiConsumer;)V
         3: .line 479
            aload 1 /* result */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            astore 2 /* unmodifiableMap */
        start local 2 // java.util.Map unmodifiableMap
         4: .line 480
            aload 2 /* unmodifiableMap */
            invokestatic org.springframework.util.CollectionUtils.toMultiValueMap:(Ljava/util/Map;)Lorg/springframework/util/MultiValueMap;
            areturn
        end local 2 // java.util.Map unmodifiableMap
        end local 1 // java.util.Map result
        end local 0 // org.springframework.util.MultiValueMap targetMap
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0        targetMap  Lorg/springframework/util/MultiValueMap<+TK;+TV;>;
            2    5     1           result  Ljava/util/Map<TK;Ljava/util/List<TV;>;>;
            4    5     2  unmodifiableMap  Ljava/util/Map<TK;Ljava/util/List<TV;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/springframework/util/MultiValueMap<+TK;+TV;>;)Lorg/springframework/util/MultiValueMap<TK;TV;>;
    MethodParameters:
           Name  Flags
      targetMap  

  private static void lambda$0(java.util.Map, java.lang.Object, java.util.List);
    descriptor: (Ljava/util/Map;Ljava/lang/Object;Ljava/util/List;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 1 // java.lang.Object key
        start local 2 // java.util.List value
         0: .line 476
            aload 2 /* value */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            astore 3 /* values */
        start local 3 // java.util.List values
         1: .line 477
            aload 0
            aload 1 /* key */
            aload 3 /* values */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.List values
         2: .line 478
            return
        end local 2 // java.util.List value
        end local 1 // java.lang.Object key
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     1     key  Ljava/lang/Object;
            0    3     2   value  Ljava/util/List<Ljava/lang/Object;>;
            1    2     3  values  Ljava/util/List<+TV;>;
}
SourceFile: "CollectionUtils.java"
NestMembers:
  org.springframework.util.CollectionUtils$EnumerationIterator
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private EnumerationIterator = org.springframework.util.CollectionUtils$EnumerationIterator of org.springframework.util.CollectionUtils