<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>