操作集合的工具类:Collections

<span style="font-family:Times New Roman;font-size:18px;">package com.collection.tools;


import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;


public class CollectionTools {


	public static void main(String[] args) {
		ArrayList nums=new ArrayList();
		nums.add(2);
		nums.add(1);
		nums.add(-9);
		nums.add(0);
		System.out.println("---------排序操作---------");
		System.out.println(nums);
		//将List集合中的元素次序反转
		Collections.reverse(nums);
		System.out.println("将List集合中的元素次序反转:\n"+nums);
		//将List集合元素按自然顺序排序
		Collections.sort(nums);
		System.out.println("将List集合元素按自然顺序排序:\n"+nums);
		//将List集合元素按随机顺序排序
		Collections.shuffle(nums);
		System.out.println("将List集合元素按随机顺序排序:\n"+nums);
		Collections.swap(nums, 1, 2);
		System.out.println("将List集合中的i处元素与j处元素交换:\n"+nums);
		Collections.rotate(nums, 3);
		System.out.println("将List集合中的前3个元素整体移到前面:\n"+nums);
		
		System.out.println("\n--------查找、替换操作---------");
		Collections.sort(nums);
		System.out.println("集合元素已经处于有序状态:\n"+nums);
		System.out.println("获取'0'在List中的索引:\n"+
		Collections.binarySearch(nums, 0));
		System.out.println("根据元素的自然排序,返回nums集合中的最大元素:\n"+
				Collections.max(nums));
		Collections.fill(nums, 8);
		System.out.println("使用‘8’替换nums集合中 所有元素:\n"+nums);
		System.out.println("返回nums集合中‘8’出现的次数:\n"+
				Collections.frequency(nums, 8));
		ArrayList num=new ArrayList();
		num.add(8);
		num.add(8);
		System.out.println("返回子list对象父list对象中第一次出现额位置索引,如果木有则返回1:\n"+
				Collections.indexOfSubList(nums, num));
		System.out.println("使用一个新值‘5’替换nums集合中所有的‘8’:\n"+
				Collections.replaceAll(nums, 8, 5));
		System.out.println(nums);
/*
 * Collections类中提供了多个synchronizedXxx()方法,该方法可以指定
 * 集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题
 * 直接将新创建的集合对象传给了Collections的SynchronizedXxx方法
 * 就可以直接获取List,Set,Map的线程安全版本
 */
		System.out.println("\n---------同步控制---------");
		Collection c=Collections.synchronizedCollection(new ArrayList());
		List list=Collections.synchronizedList(new ArrayList());
		Set s=Collections.synchronizedSet(new HashSet());
		Map m=Collections.synchronizedMap(new HashMap());
		
		System.out.println("\n---------设置不可变集合---------");
		//创建一个空的,不可变的List对象
		List unmodifiableList=Collections.emptyList();
		//创建一个只有一个元素,且不可改变的Set对象
		Set unmodifiableSet=Collections.singleton("云计算");
		//创建一个普通的Map对象
		Map map=new HashMap();
		map.put("海量存储", 98);
		map.put("语文", 78);
		map.put("多媒体", 88);
		System.out.println(map);
		//返回普通的Map对象对应的不可变版本
		Map unmodifiableMap=Collections.unmodifiableMap(map);
		//试图向unmodifiableMap添加元素会引发异常
//		unmodifiableList.add("test");
//		unmodifiableSet.add("test");
//		unmodifiableMap.put("操作系统", 78);
		
		/*
		 * Enumeration迭代器只能遍历Vector,Hashtable古老的集合
		 * 因此通常不选择它,一般都应该选择Iterator
		 */
		System.out.println("\n---------接口:Enumeration---------");
		Vector v=new Vector();
		v.add("语文");
		v.add("数学");
		v.add("外语");
		Hashtable scores=new Hashtable();
		scores.put("数据库技术",76);
		scores.put("网络工程",89);
		Enumeration em=v.elements();
		while(em.hasMoreElements())
		{
			System.out.println(em.nextElement());
		}
		Enumeration keyEm=scores.keys();
		while(keyEm.hasMoreElements())
		{
			Object key=keyEm.nextElement();
			System.out.println(key+"---->"+scores.get(key));
		}
	}


}
</span>






©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页