`

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基础知识点总结.docx

    Collections--集合工具类 83 Arrays—数组对象工具类 84 增强for循环 85 可变参数(...) 86 枚举:关键字 enum 86 自动拆装箱 86 泛型 87 &lt;java.lang&gt;System 89 &lt;java.lang&gt;Runtime 90 &lt;java.lang&gt;Math 90 &lt;java....

    了解Collection 和 Collections

    Collection 和 Collections区别 java.util.Collection 是一个集合接口(集合类的一个顶级接口)。 它提供了对集合对象进行基本...java.util.Collections 是一个包装类(工具类/帮助类)。 它包含有各种有关集合操作的

    java常用工具类的使用

    在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...

    java各种功能集合和工具.rar

    首先出场的是java.util包下的Collections类,该类主要用于操作集合或者返回集合,我个人非常喜欢用它。 1.1 排序 在工作中经常有对集合排序的需求。 1.2 获取最大或最小值 有时候需要找出集合中的最大值或者最小值...

    google-collections-1.0.rar

    google公共工具类;google collections是google的工程师利用传说中的“20%时间”开发的集合库,它是对java.util的扩展,提供了很多实用的类来简化代码。google collections使用了范型,所以要求jdk1.5以上。

    Java集合类——前言

    工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections) 这个图乱的一批o_o … emmmm大致可以看出,上面有三巨头,即Iterator、Collection、Map(虚线框是接口,实线框是类),Java的集合类主要就是由...

    Guava 16.0 API (CHM格式)

    Powerful collection utilities(强大的集合工具类): java.util.Collections 中未包含的常用操作工具类  4. Extension utilities(扩展工具类): 给 Collection 对象添加一个装饰器? 实现迭代器? 我们可以更容易...

    java编发编程:JUC综合讲解

    JUC(java.util.concurrent)库是 Java 标准库的一部分,提供了丰富的多线程并发工具,旨在帮助开发者编写高性能、高可伸缩性的并发程序。下面综合介绍 JUC 库的几个核心概念以及它们在并发编程中的重要性。 1. ...

    java开发常用jar包

    Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 commons-...

    web开发常用jar

    Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 commons-...

    Hibernate包作用详解

     Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。  commons-beanutils.jar:  Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 ...

    Java学习笔记-个人整理的

    {4.8}Collections集合工具类}{86}{section.4.8} {4.9}Comparable与Comparator}{86}{section.4.9} {4.9.1}Comparable}{86}{subsection.4.9.1} {4.9.2}Comparator}{87}{subsection.4.9.2} {4.10}包装类}{87}{...

    JAVA基础课程讲义

    Collections工具类 141 Comparable接口 141 equals和hashcode方法 143  泛型 144 思考作业 145 上机作业 145 第八章 IO技术 146 为什么需要学习IO技术 146 基本概念 146 数据源 146 流的概念 146 第一个简单的IO流...

    Jakarta commons docs API CHM 格式

    commons-collections 扩充了 java.util.collection 接口 commons-compress 操作压缩文件的 API commons-configuration 可以从xml、properties、JNDI、JDBC、System properties、Applet parameters和Servlet ...

    比较全面的:Jakarta-commons jar包(附: chm参考手册 & 资源简介)

    commons-collections 扩充了 java.util.collection 接口 commons-compress 操作压缩文件的 API commons-configuration 可以从xml、properties、JNDI、JDBC、System properties、Applet parameters和Servlet ...

    java范例开发大全(pdf&源码)

    实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程...

    java范例开发大全源代码

     第11章 Java常用类(教学视频:66分钟) 315  11.1 数学Math类 315  实例186 求圆周率∏值 315  实例187 求对数值 316  实例188 使用取整函数 317  11.2 Random类的使用 318  实例189 随机数 ...

    java范例开发大全

    实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程...

    Java范例开发大全 (源程序)

     实例218 使用Collections类对List的排序操作 393  实例219 LinkedList的添加删除操作 395  实例220 运用Vector 397  实例221 改变Properties文件中的键值 399  第13章 多线程编程(教学视频:121分钟) ...

Global site tag (gtag.js) - Google Analytics