操作系统的工具类Collections

一 Collections介绍

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

2 Collections还提供了将集合对象设置不可变、对集合对象实现同步控制等方法。

 

二 排序操作

1 代码示例

Java代码

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

2 运行结果

[2, -5, 3, 10]
[10, 3, -5, 2]
[-5, 2, 3, 10]
[-5, 10, 3, 2]

3 代码说明下载

上面代码演示了Collections类常用的排序操作。

三 查找和替换操作

1 代码示例  下载

Java代码

  1. import java.util.*;
  2. public class SearchTest
  3. {
  4. public static void main(String[] args)
  5. {
  6. ArrayList nums = new ArrayList();
  7. nums.add(2);
  8. nums.add(-5);
  9. nums.add(3);
  10. nums.add(10);
  11. System.out.println(nums); // 输出:[2, -5, 3, 10]
  12. System.out.println(Collections.max(nums)); // 输出最大元素,将输出13
  13. System.out.println(Collections.min(nums)); // 输出最小元素,将输出-5
  14. Collections.replaceAll(nums , 10 , 1); // 将nums中的0使用1来代替
  15. System.out.println(nums); // 输出:[2, -5, 3, 1]
  16. // 判断-5在List集合中出现的次数,返回1
  17. System.out.println(Collections.frequency(nums , -5));
  18. Collections.sort(nums); // 对nums集合排序
  19. System.out.println(nums); // 输出:[-5, 1,2, 3]
  20. //只有排序后的List集合才可用二分法查询,输出3
  21. System.out.println(Collections.binarySearch(nums , 3));
  22. }
  23. }

2 运行结果

[2, -5, 3, 10]
10
-5
[2, -5, 3, 1]
1
[-5, 1, 2, 3]
3

3 代码说明  下载

上面代码演示了Collections工具类的查找和替换操作。

四 同步操作

1 代码示例  下载

Java代码

  1. import java.util.*;
  2. public class SynchronizedTest
  3. {
  4. public static void main(String[] args)
  5. {
  6. // 下面程序创建了四个线程安全的集合对象
  7. Collection c = Collections.synchronizedCollection(new ArrayList());
  8. List list = Collections.synchronizedList(new ArrayList());
  9. Set s = Collections.synchronizedSet(new HashSet());
  10. Map m = Collections.synchronizedMap(new HashMap());
  11. }
  12. }

2 代码说明

在上面代码中,直接将新创建的集合对象传给了Collections的synchronizedXxx方法,这样就可以直接获取List,Set,Map的线程安全版本。

五设置不可变集合

1 代码示例  下载

Java代码

  1. import java.util.*;
  2. public class UnmodifiableTest
  3. {
  4. public static void main(String[] args)
  5. {
  6. // 创建一个空的、不可改变的List对象
  7. List unmodifiableList = Collections.emptyList();
  8. // 创建一个只有一个元素,且不可改变的Set对象
  9. Set unmodifiableSet = Collections.singleton("疯狂Java讲义");
  10. // 创建一个普通Map对象
  11. Map scores = new HashMap();
  12. scores.put("语文" , 80);
  13. scores.put("Java" , 82);
  14. // 返回普通Map对象对应的不可变版本
  15. Map unmodifiableMap = Collections.unmodifiableMap(scores);
  16. // 下面任意一行代码都将引发UnsupportedOperationException异常
  17. unmodifiableList.add("测试元素");   //①
  18. unmodifiableSet.add("测试元素");    //②
  19. unmodifiableMap.put("语文" , 90);   //③
  20. }
  21. }

2 运行结果

E:\test\Java\Java8\Collections\src>java UnmodifiableTest
Exception in thread "main" java.lang.UnsupportedOperationException
        at java.util.AbstractList.add(Unknown Source)
        at java.util.AbstractList.add(Unknown Source)
        at UnmodifiableTest.main(UnmodifiableTest.java:20)

3 代码说明

最后3行代码试图修改集合元素,都会引发UnsupportedOperationException异常。

时间: 2024-10-05 17:25:01

操作系统的工具类Collections的相关文章

Java从零开始学二十四点(集合工具类Collections)

一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二.Collections类的常用方法及常量 No. 方法 类型 描述 1 public static final List EMPTY_LIST 常量 返回一个空的List集合 2 public static final Set EMPTY_SET 常量 返回空的Set集合 3 public sta

黑马程序员——工具类Collections的使用

工具类Collections的使用 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class CollectionsDemos { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<String> al = new ArrayList

Java之工具类Collections

总结 Collections 是一个操作 Set.List 和 Map 等集合的工具类 Collections 中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变.对集合对象实现同步控制等方法 实现方法 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test3 { p

集合中的工具类Collections和Arrays

集合框架的工具类: Collections: 方法sort(): List<String> list = new ArrayList<String>();        list.add("gfhd");        list.add("abc");        list.add("a");        list.add("aaaadfs");sort(list);//按自然顺序排列,String

13弹;集合中的工具类Collections和Arrays

集合框架的工具类: Collections: 方法sort() System.out.println(list); // 自然排序 Collections.sort(list); System.out.println(list); // 按照字符串长度排序,再自然排序 Collections.sort(list,new Compare()); System.out.println(list); binarySearch 方法 前提是此集合必须是有序的 返回插入位置 角标的负数再减一: fill方

集合框架工具类Collections

* Collections演示. * 1,用于操作集合的工具类. * 2,提供了很多的静态方法. * * 比如对list集合排序,二分查找,位置置换. * 对排序的元素进行顺序的逆转.reverseOrder * 还可以获取集合的最大值和最小值. * 最牛叉的是将非同步的集合转成同步的集合 synchronizedXXX package cn.itcast.p4.collections;   import java.util.ArrayList; import java.util.Collect

java集合框架--工具类Collections

1.Collections概述 是针对集合操作的工具类. 2.Collection和Collections的区别? Collection:是单列集合的顶层接口,而Collections是针对集合操作的工具类. Collection有子接口List和Set,而Collections有对集合进行排序和二分查找的方法. 3.Collections工具类的功能 public static <T> void sort(List<T> list):默认情况下是对集合的自然排序. public

JAVA基础学习day17--集合工具类-Collections

一.Collection简述 1.1.Collection与Collections的区别 Collections是集合的静态工具类 Collection:是集合的顶级接口 二.Sort 2.1.sort package com.pb.sort.demo1; import java.util.ArrayList; import java.util.Collections; /** * 对字符串进行自然排序 * */ public class SortDemo1 { public static vo

集合的工具类Collections

Collections 是集合的工具类, 里面定义了很多静态方法 binarySearch(List,Object) 使用二分法查找集合中的元素,如果找到就返回该元素在集合中的下标,如果没有找到就返回负数 copy(List,List) 将一个集合中的所有元素复制到另一个集合. disjoint(Collection,Collection) 两个集合中如果没有相同的元素返回true min,max(Collection) 找出集合中最小与最大的元素,规则由实现Comparable接口中的comp