操作集合的工具类:Collections

来源:互联网 发布:淘宝衣服进货渠道 编辑:程序博客网 时间:2024/05/21 14:56

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






0 0
原创粉丝点击