操作集合的工具类:Collections

主讲人:王少华  QQ群号:483773664

Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合元素实现同步控制等方法。

一、排序操作

(一)、方法

Collections提供了如下几个方法用于对List集合元素进行排序

  • static void reverse(List list):反转指定List集合中元素的顺序

  • static void shuffle(List list):对List集合元素进行随机排序

  • static void sort(List list):根据元素的自然顺序对指定的List集合的元素按升序进行排序

  • static void sort(List list,Comperator c):根据指定的Comparator产生的顺序对List集合的元素进行排序

  • static void swap(List list int i,int j):将指定的List集合中i处元素和j处元素进行交换

  • static void rotate(List list,int distance):将指定集合中i处元素和list.length-1-i处的元素进行交换。

(二)实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class SortTest
{
    public static void main(String[] args)
    {
        ArrayList nums = new ArrayList();
        nums.add(2);
        nums.add(-5);
        nums.add(3);
        nums.add(0);
        //输出:[2, -5, 3, 0]
        System.out.println(nums);
        //将List集合元素的次序反转
        Collections.reverse(nums);
        //输出:[0, 3, -5, 2]
        System.out.println(nums);
        //将List集合元素的按自然顺序排序
        Collections.sort(nums);
        //输出:[-5, 0, 2, 3]
        System.out.println(nums);
        //将List集合元素的按随机顺序排序
        Collections.shuffle(nums);
        //每次输出的次序不固定
        System.out.println(nums);
    }
}

二、查找和搜索操作

(一)、方法

1、static int binarySearch(List list,Object key):使用二分搜索法,以获得指定对象在List中的索引,前提是集合元素已是有序状态。

2、static Object max(Collection coll):根据元素的自然排序,返回给定集合中的最大元素。

3、static Object max(Collection coll,Comparator comp):根据指定Comparator产生的顺序,返回给定集合中的最大元素。

4、static Object min(Collection coll):根据元素的自然排序,返回给定集合中的最小元素。

5、static Object min(Collection coll,Comparator comp):根据指定Comparator产生的顺序,返回给定集合中的最小元素。

6、static void fill(List list,Object obj):使用指定元素obj替换List里的所有元素。

7、static int frequency(Collection Object o):返回指定集合中等于指定对象的元素数量。

8、static int indexOfSubList(List source,List target):返回子list对象在母list中第一次出现的索引,如果没有则返回-1。

9、static int lastIndexOfSubList(List source,List target):返回子list对象在母list中最后一次出现的索引,如果没有则返回-1。

10、static boolean replaceAll(List list,Object old,Object new):使用一个新值替换List中所有的旧值。

(二)实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class SearchTest
{
    public static void main(String[] args)
    {
        ArrayList nums = new ArrayList();
        nums.add(2);
        nums.add(-5);
        nums.add(3);
        nums.add(0);
        //输出:[2, -5, 3, 0]
        System.out.println(nums);
        //输出最大元素,将输出3
        System.out.println(Collections.max(nums));
        //输出最小元素,将输出-5
        System.out.println(Collections.min(nums));
        //将nums中的0使用1来代替
        Collections.replaceAll(nums , 0 , 1);
        //输出:[2, -5, 3, 1]
        System.out.println(nums);
        //判断-5 在List集合中出现的次数,返回1
        System.out.p

0

收藏

编程魔法师

106篇文章,9W+人气,0粉丝

Ctrl+Enter 发布

发布

取消

扫一扫,领取大礼包

0

分享
编程魔法师