Collections工具类

Collections工具类

  • Collections是一个操作Set、List和Map等集合的工具类(类似于Arrays操作数组的工具类)
  • 提供了一系列的静态方法(static)

排序操作的相关方法

  1. reverse(List)

    反转List中元素的顺序

    List list = new ArrayList();
    list.add(-92);
    list.add(123);
    list.add(963);
    list.add(100);
    list.add(-8);
    list.add(20);
    System.out.println(list);//[-92, 123, 963, 100, -8, 20]
    
    Collections.reverse(list);
    System.out.println(list);//[20, -8, 100, 963, 123, -92]
    
  2. shuffle(List)

    对List集合元素进行随机排序

    Collections.shuffle(list);
    System.out.println(list);//[963, -8, 123, 100, -92, 20]
    
  3. sort(List)

    根据元素的自然排序对指定的List集合元素按升序排序

    Collections.sort(list);
    System.out.println(list);//[-92, -8, 20, 100, 123, 963]
    
  4. sort(List , Comparator)

    根据指定的Comparator产生的顺序对List集合元素进行排序

  5. swap(List , int i , int j)

    将指定的List集合中的i处元素和j处元素惊醒交换

    //交换前原始的List为[-92, 123, 963, 100, -8, 20]
    Collections.swap(list,1,5);
    System.out.println(list);//[-92, 20, 963, 100, -8, 123]
    

查找、替换操作相关的方法

  1. max(Collection)

    根据元素的自然顺序,返回给定集合中最大的元素

    System.out.println(Collections.max(list));//963
    
  2. max(Collection , Comparator)

    根据Comparator指定的顺序,返回给定集合中最大的元素

  3. min(Collection)

    根据元素的自然顺序,返回给定集合中最小的元素

  4. min(Collection , Comparator)

    根据Comparator指定的顺序,返回给定集合中最小的元素

  5. frequency(Collection , Object)

    返回指定集合中指定元素出现的次数

    System.out.println(Collections.frequency(list,-8));//1
    
  6. copy(List dest , List src)

    将src中的内容复制到dest中

    其中要求dest中要有src复制的位置(假如src有3个元素,这时候要求dest也要有三个位置可以存放src的三个元素)

    不可以直接复制,会报错。

    List src = new ArrayList();
    src.add(-92);
    src.add(123);
    src.add(963);
    
    System.out.println("src:" + src);
    
    List dest = Arrays.asList(new Object[src.size()]);
    System.out.println(dest);
    
    Collections.copy(dest , src);
    System.out.println("dest:" + dest);
    
  7. replaceAll(List list , Object oldjVal , Object newVal)

    使用新值替换List对象中的旧值

同步控制

Collections类中提供了多个synchronizedXxx()方法,该方法可以将指定集合包装成线程同步集合,从而解决多线程并发访问集合时的线程安全问题

List list = new ArrayList();
list.add(-92);
list.add(123);
list.add(963);
List list1 = Collections.synchronizedList(list);//list1即为线程安全的

你可能感兴趣的:(Collections工具类)