一、Collections
- 该类不能创建对象
- 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。
- 它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
- 如果为此类的方法所提供的 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){} }
相关推荐
Collections--集合工具类 83 Arrays—数组对象工具类 84 增强for循环 85 可变参数(...) 86 枚举:关键字 enum 86 自动拆装箱 86 泛型 87 <java.lang>System 89 <java.lang>Runtime 90 <java.lang>Math 90 <java....
Collection 和 Collections区别 java.util.Collection 是一个集合接口(集合类的一个顶级接口)。 它提供了对集合对象进行基本...java.util.Collections 是一个包装类(工具类/帮助类)。 它包含有各种有关集合操作的
在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...
首先出场的是java.util包下的Collections类,该类主要用于操作集合或者返回集合,我个人非常喜欢用它。 1.1 排序 在工作中经常有对集合排序的需求。 1.2 获取最大或最小值 有时候需要找出集合中的最大值或者最小值...
google公共工具类;google collections是google的工程师利用传说中的“20%时间”开发的集合库,它是对java.util的扩展,提供了很多实用的类来简化代码。google collections使用了范型,所以要求jdk1.5以上。
工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections) 这个图乱的一批o_o … emmmm大致可以看出,上面有三巨头,即Iterator、Collection、Map(虚线框是接口,实线框是类),Java的集合类主要就是由...
Powerful collection utilities(强大的集合工具类): java.util.Collections 中未包含的常用操作工具类 4. Extension utilities(扩展工具类): 给 Collection 对象添加一个装饰器? 实现迭代器? 我们可以更容易...
JUC(java.util.concurrent)库是 Java 标准库的一部分,提供了丰富的多线程并发工具,旨在帮助开发者编写高性能、高可伸缩性的并发程序。下面综合介绍 JUC 库的几个核心概念以及它们在并发编程中的重要性。 1. ...
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 commons-...
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 commons-...
Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。 commons-beanutils.jar: Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 ...
{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}{...
Collections工具类 141 Comparable接口 141 equals和hashcode方法 143 泛型 144 思考作业 145 上机作业 145 第八章 IO技术 146 为什么需要学习IO技术 146 基本概念 146 数据源 146 流的概念 146 第一个简单的IO流...
commons-collections 扩充了 java.util.collection 接口 commons-compress 操作压缩文件的 API commons-configuration 可以从xml、properties、JNDI、JDBC、System properties、Applet parameters和Servlet ...
commons-collections 扩充了 java.util.collection 接口 commons-compress 操作压缩文件的 API commons-configuration 可以从xml、properties、JNDI、JDBC、System properties、Applet parameters和Servlet ...
实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程...
第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实例186 求圆周率∏值 315 实例187 求对数值 316 实例188 使用取整函数 317 11.2 Random类的使用 318 实例189 随机数 ...
实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程...
实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) ...