java.util.Collections 类
来源:互联网 发布:用eclipse写java程序 编辑:程序博客网 时间:2024/05/01 11:44
Collections 类
java.util.Collections 类中定义了多种集合操作方法,实现了对集合操作方法,实现了对集合元素的排序、取极值、批量拷贝、集合结构转换、循环移位以及匹配性检查等功能,常用 static 方法如下:
注意如果传入Collections类静态方法的集合参数为空时会抛出空指针异常
1.addAll(Collection<? super T> c, T... elements) //可以添加单个元素或是T数组到指定c集合中
2.sort(List<T> list) //按照T元素默认的比较关系进行排序(内部自定义排序) //T是实现Comparable接口的类
3.sort(List<T> list, Comparator<? super T> c) //按照自定义排序规则进行排序(外部自定义排序)
public static void shuffle(List list); // 混排,与 sort 相反,完全打乱排列顺序
public static void copy(List dest, list src); // 覆盖,如果 dest 更长,则其剩余元素不受影响
public static void fill(List list, Object o); // 使用指定元素替换指定列表中的所有元素
swap(List<?> list, int i, int j)
在指定列表的指定位置处交换元素。
4.int binarySearch(List<?extends Comparable<? super T>> list,T key)
//二分法查找集合中的是否包含指定的元素
//要求元素继承自Comparable接口
//要求list是排号顺序的
//返回的是查找到的索引位置,如果没有找到则返回-1
5.binarySearch(List<?extends T> list,T key,Comparator<? super T> c)
//二分法查找指定元素,但是会按照传入的Comparator比较元素的大小
//要求list是排号顺序的
//返回的是查找到的索引位置,如果没有找到则返回-1
6.copy(List<? super T> dest, List<? extends T> src)
//拷贝src集合元素到目标集合中
//内部实现就是将判断src的大小是否大于des的大小,然后对src进行遍历,并将取出的值
//添加到des集合中
7.enumeration(Collection<T> c)
//返回一个指向collection的枚举
8.max(Collection<? extends T> coll)
//返回集合中最大的元素
9.max(Collection<? extends T> coll, Comparator<? super T> comp)
//按照自定义的比较规则返回集合中最大的元素
10.min(Collection<? extends T> coll)
11.min(Collection<? extends T> coll, Comparator<? super T> comp)
12.reverse(List<?> list)
//反置有序的集合
13.synchronizedList(List<T> list)
//返回一个安全的list
14.synchronizedMap(Map<K,V> m)
//返回安全的map
15.synchronizedSet(Set<T> s)
//返回安全的set
16. replaceAll(List<T> list, T oldVal, T newVal)
使用另一个值替换列表中出现的所有某一指定值。
17.static unmodifiableCollection(Collection<? extends T> c) 返回指定 collection 的不可修改视图。
18.unmodifiableList(List<? extends T> list) 返回指定列表的不可修改视图
19.static int frequency(Collection<?> c, Object o) 返回指定 collection 中等于指定对象的元素数。
20.newSetFromMap(Map<E,Boolean> map) 返回指定映射支持的 set。
例子:
import java.util.Vector;import java.util.ArrayList;import java.util.Collections;import java.util.Enumeration;public class TestCollections {public static void main(String[] args) {ArrayList alist = new ArrayList();alist.add(7);alist.add(55);alist.add(44);alist.add(33);alist.add(12);alist.add(11);System.out.println(" 原列表 : " + alist);Collections.sort(alist);System.out.println(" 排序后 : " + alist);Collections.reverse(alist);System.out.println(" 逆序后 : " + alist);Collections.shuffle(alist);System.out.println(" 混排后 : " + alist);Collections.rotate(alist, 2);System.out.println(" 移位后 : " + alist);ArrayList blist = new ArrayList();blist.add(55);blist.add(66);System.out.println(" 新列表 : " + blist);Collections.copy(alist, blist);System.out.println(" 拷贝后 : " + alist);System.out.println(" 列表中出现元素 66 的次数 : "+ Collections.frequency(alist, 66));System.out.println(" 列表中元素的最大值 : " + Collections.max(alist));System.out.println(" 列表中元素的最小值 : " + Collections.min(alist));Enumeration en = createDemoEnumeration();ArrayList clist = Collections.list(en);System.out.println("Enumeration->ArrayList: " + alist);}public static Enumeration createDemoEnumeration() {Vector v = new Vector();v.add("Zhang");v.add("Wang");v.add("Liao");return v.elements();}}
结果输出:
原列表 : [7, 55, 44, 33, 12, 11]
排序后 : [7, 11, 12, 33, 44, 55]
逆序后 : [55, 44, 33, 12, 11, 7]
混排后 : [12, 55, 7, 11, 44, 33]
移位后 : [44, 33, 12, 55, 7, 11]
新列表 : [55, 66]
拷贝后 : [55, 66, 12, 55, 7, 11]
列表中出现元素 66 的次数 : 1
列表中元素的最大值 : 66
列表中元素的最小值 : 7
Enumeration->ArrayList: [55, 66, 12, 55, 7, 11]
- java.util.Collections类
- java.util.Collections 类
- Java.util.Collections 类
- Java.util.Collections类包
- Java.util.Collections工具类
- java.util.Collections;Collections .synchronizedMap
- JAVA基础:Java.util.Collections类
- Java.util.Collections类包的学习
- Java.util.Collections类包的学习
- java.util.Collections 类的常见用法
- Java.util.Collections类包的学习
- java.util.Collections 集合帮助类
- java.util.Collections学习
- java.util.Collections学习
- java.util.Collections使用说明
- java.util.Collections
- java.util.Collections
- java.util.Collections.reverse()
- 大型网站架构一步步构建
- poj1155之有限电视网络
- STM8S PWM应用 用于设置红外38KHZ 载波
- apache,tomcat负载均衡(个人记录的相关网址)
- 反转单链表 递归与非递归
- java.util.Collections 类
- 删除Management Data Warehouse (MDW) job失败
- devfs、sysfs、udev介绍
- ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
- 2013 年国产开源软件 10 大年度热门项目
- 漫漫IT路,这仅仅才是开始
- Struts2图片文件上传,判断图片格式和图片大小
- 设备树详解
- svn使用原则