`

14、java.util.Collections集合工具类

阅读更多

一、Collections

 

  1. 该类不能创建对象
  2. 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。
  3. 它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
  4. 如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都将抛出 NullPointerException

二、常用方法

 

public class Collections
{
	//构造函数私有化,不能创建对象
	private Collections() {}

	//为List集合排序************************************

	//sort根据元素的自然顺序 对指定列表按升序进行排序
	public static <T extends Comparable<? super T>> void sort(List<T> list) {
		Object[] a = list.toArray();
		Arrays.sort(a);
		ListIterator<T> i = list.listIterator();
		for (int j=0; j<a.length; j++) {
			i.next();
			i.set((T)a[j]);
		}
    }
	//sort根据指定比较器产生的顺序对指定列表进行排序。
	public static <T> void sort(List<T> list, Comparator<? super T> c) {
		Object[] a = list.toArray();
		Arrays.sort(a, (Comparator)c);
		ListIterator i = list.listIterator();
		for (int j=0; j<a.length; j++) {
			i.next();
			i.set(a[j]);
		}
    }

	//求最值***********************************************

	//根据元素的自然顺序,返回给定 collection 的最大元素
	public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) {
		Iterator<? extends T> i = coll.iterator();
		T candidate = i.next();

		while (i.hasNext()) {
			T next = i.next();
			if (next.compareTo(candidate) > 0)
			candidate = next;
		}
		return candidate;
    }
	//根据指定比较器产生的顺序,返回给定 collection 的最大元素
	public static <T> T max(Collection<? extends T> coll, 
							Comparator<? super T> comp){}

	//根据元素的自然顺序 返回给定 collection 的最小元素。
	public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll){}

	//根据指定比较器产生的顺序,返回给定 collection 的最小元素
	public static <T> T min(Collection<? extends T> coll,
							Comparator<? super T> comp){}

	
	
	//********************************************************************
	//对List集合进行二分查找
	
	//使用二分搜索法搜索指定列表,以获得指定对象。必须先根据列表元素的自然顺序对列表进行有序排序(通过 sort(List) 方法)。
	public static <T> int binarySearch(List<? extends Comparable<? super T>> list,
																			T key){}
	
	//使用二分搜索法搜索指定列表,以获得指定对象。必须先根据指定的比较器对列表进行升序排序(通过 sort(List, Comparator) 方法)。
	public static <T> int binarySearch(List<? extends T> list,
                                   T key,
                                   Comparator<? super T> c){}

	//***************************************************************************
	//将所有元素从一个列表复制到另一个列表。
	public static <T> void copy(List<? super T> dest,
                            List<? extends T> src){}

	//对List替换,反转****************************************************************************
	
	//使用指定元素替换指定列表中的所有元素。
	public static <T> void fill(List<? super T> list,
							 T obj){}

	//使用另一个值替换列表中出现的所有某一指定值
	public static <T> boolean replaceAll(List<T> list,
                                     T oldVal,
                                     T newVal){}

	//反转指定列表中元素的顺序
	public static void reverse(List<?> list){}

	//在指定列表的指定位置处交换元素
	public static void swap(List<?> list,
                        int i,
                        int j){}

	//获取对指定集合进行强行反转的比较器********************************************************

	//返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序
	public static <T> Comparator<T> reverseOrder(){}
	//如:假设 a 是一个字符串数组。那么:Arrays.sort(a, Collections.reverseOrder());将按照逆字典(字母)顺序对数组进行排序。

	//返回一个比较器,它强行逆转指定比较器的顺序。如果指定比较器为 null,则此方法等同于 reverseOrder()
	public static <T> Comparator<T> reverseOrder(Comparator<T> cmp){}

	//将非同步集合转成同步集合***********************************************************
	//原理:定义一个类,将集合所有的方法加同一把锁后返回。
	
	//返回指定列表支持的同步(线程安全的)列表。
	public static <T> List<T> synchronizedList(List<T> list){}

	//返回由指定映射支持的同步(线程安全的)映射。
	public static <K,V> Map<K,V> synchronizedMap(Map<K,V> m){}

	//返回指定 set 支持的同步(线程安全的)set
	public static <T> Set<T> synchronizedSet(Set<T> s){}


	//*******************************
	//使用默认随机源对指定列表进行置换。所有置换发生的可能性都是大致相等的。
	public static void shuffle(List<?> list){}
}

 

分享到:
评论

相关推荐

    java.util包

    8. Collections和Arrays工具类:Collections提供了许多静态方法,用于操作集合,如排序、填充、复制、查找和转换等。Arrays类提供了对数组的各种操作,如排序、比较、复制等。 9. Random类:Random类用于生成随机数...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    java.util.concurrent系列文章(1)

    本篇文章将深入探讨 `java.util.concurrent` 包中的一些核心概念和技术,特别是 `ConcurrentHashMap` 和 `CopyOnWriteArrayList` 这两个集合类。 #### 二、线程安全问题概述 线程安全性是指在多线程环境中,代码...

    java.util.vector中vector小结

    在Java编程语言中,`java.util....总之,`Vector`是Java集合框架的一部分,提供了一种线程安全的方式来管理动态数组。理解其特性和用法对于编写多线程Java程序至关重要,但同时也要权衡其性能和线程安全之间的平衡。

    Java常用工具类大全,工作5年精心整理.zip

    1. **`java.util.ArrayList`与`java.util.LinkedList`**:这两个是Java集合框架中的重要类,分别代表动态数组和链表。ArrayList适合于随机访问,而LinkedList适用于频繁的插入和删除操作。 2. **`java.util.HashMap...

    java的.awt包和java.util包的区别

    2. **实用工具类**: - **Arrays**:提供了操作数组的方法,例如排序、搜索等。 - **Collections**:提供了一系列静态方法来操作和处理集合对象。 - **StringTokenizer**:用于将字符串分割成一系列子字符串或...

    28个java常用的工具类

    在Java编程语言中,工具类(Utility Class)是那些提供了静态方法或常量,用于执行特定任务或提供通用功能的类。这些类不包含公共构造器,通常是为了避免实例化,因为它们的设计目的就是作为静态服务。以下是28个...

    java工具类

    2. **`java.util.Collections`**:它是针对集合框架的工具类,提供了对List、Set、Map等各种集合的操作,如排序(`sort()`)、填充(`fill()`)和集合转换(`copy()`)等。 3. **`java.lang.Math`**:提供了各种...

    30个常用java工具类

    8. **`java.util.concurrent`** 包:提供并发工具类,如`ExecutorService`、`Future`和`Semaphore`,帮助管理线程和控制并发。 9. **`java.util.Map.Entry`**:表示Map中的键值对,常用于遍历Map。 10. **`java....

    Java常用工具类集合

    在Java编程语言中,工具类集合是一系列实用的类,它们提供了各种通用功能,帮助开发者更高效地编写代码。这些工具类通常包含在Java的`java.util`以及其他相关的包中,如`java.text`,`javax.imageio`,`javax.xml`等...

    比较全的java工具类

    - `java.util.Collections`:操作集合的工具类,如排序、反转、填充等。 以上只是Java工具类的一部分,实际中还有很多实用的工具类,例如用于XML处理的`javax.xml.parsers.DocumentBuilderFactory`,用于JSON解析...

    Java 常用工具类集合

    在Java编程语言中,工具类集合是一组预定义的、静态方法丰富的类,它们提供了各种实用功能,大大简化了开发人员的工作。这些工具类通常包含在Java标准库(JDK)的不同包中,如`java.util`、`java.lang`、`java.io`等...

    JAVA开发常用工具类

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法通常用于执行特定的、重复的任务,以提高代码的重用性和效率。这些工具类不依赖于实例化,而是通过调用静态方法来提供服务。下面我们将...

    java常用的工具类整理28个

    3. **java.util.Collections**:与`Arrays`类似,但它是针对集合接口(如List、Set、Map)的,提供了排序、搜索、填充等方法。 4. **java.text.SimpleDateFormat**:用于日期和时间的格式化和解析,可以根据自定义...

    java常用工具类——个人总结

    在Java编程语言中,工具类(Util)是程序员日常开发中不可或缺的一部分,它们提供了一些预定义的方法,方便处理各种常见的任务。以下是我个人对Java中常用工具类的总结,主要涉及了加密、文件上传和日期处理等核心...

    java工具类 java开发助手 java util

    9. Collections工具类:Collections提供了对集合的各种操作,如排序、填充、复制、反转等。 10. Arrays工具类:Arrays类提供了处理数组的方法,如排序、比较、拷贝和填充。 11. EnumSet与EnumMap:针对枚举类型,...

Global site tag (gtag.js) - Google Analytics