java提供了操作Set,List.,和Map等集合的工具类:Collections可以对集合元素进行排序,查询,和修改操作
排序操作
Collections提供了如下几个方法用于对list集合元素进行排序
static void reverse(List list):反转指定List集合中元素的顺序
static void shuffle(List list):对list集合元素进行随机排序
static void sort(List list):对集合元素按自然顺序进行升序排序
static void swap(List list,Comparator c):根据制定的Comparator产生的顺序对list集合进行排序
static void rotate(List list,int distance):当distance为正数的时候,将list集合的后distance个元素“整体”移到前面;当distance为负数的时候,将list集合的前distance个元素“整体”移到后面;该方法不会改变集合的长度
代码如下:
package collectionPackage;
import java.util.ArrayList;
import java.util.Collections;
public class SortTest {
public static void main(String[] args) {
ArrayList nums= new ArrayList();
nums.add(2);
nums.add(-5);
nums.add(3);
nums.add(0);
System.out.println(nums);
//将list集合元素的次序反转
Collections.reverse(nums);
System.out.println(nums);
//将list集合元素按自然顺序排序
Collections.sort(nums);
System.out.println(nums);
//将list集合元素按随机顺序排序
Collections.shuffle(nums);
System.out.println(nums);
}
}
查找,替换操作
static int binarySearch(List list,Object key);使用二分搜索指定list集合,然后找到该对象在list集合中的索引,如果要让该方法正常工作,则必须保证list中的元素已经处于有序状态
static objec Max(Collections coll);z根据元素的自然顺序,返回给定集合中的最大元素
同步控制:
package collectionPackage;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Collections类中提供了多个SynchronizedXxx()方法,该方法可
* 以解决很多的集合的线程安全问题,通过将新创建的集合对象传给了Collections的synchronizedXxx方法,这样就可以
* 直接获取list,set和map的线程安全实现版本
* @author Administrator
*
*/
public class SynchronizedTest {
public static void main(String[] args) {
//下面程序创建4个同步的集合对象
Collection c= Collections.synchronizedCollection(new ArrayList());
List list = Collections.synchronizedList(new ArrayList());
Set s= Collections.synchronizedSet(new HashSet());
Map m= Collections.synchronizedMap(new HashMap());
}
}
设置不可变集合
package collectionPackage;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Collections提供了如下三类方法来返回一个不可变的集合
* emptyXxx():返回一个空的,不可变的集合对象,此处的集合既可以是list,也可以是set,还可以是 Map
* sigletonXxx():返回一个只包含指定对象(只有一个或者一项元素)的,不可变的集合对象,此处的集合既可以是list,也可以是set,还可以是 Map
* unmodifiableXxx:返回指定集合对象的不可变视图,此处的集合既可以是List,也可以是Set,还可以是 Map
* @author Administrator
*
*/
public class UnmodfiableTest {
public static void main(String[] args) {
//创建一个空的,不可改变的List对象
List unmodifiableList= Collections.emptyList();
//创建一个只有一个元素,且不可改变的set对象
Set unmodifiableSet= Collections.singleton("疯狂讲义");
//创建一个普通的Map对象
Map scores= new HashMap();
scores.put("语文", 80);
scores.put("数学", 84);
//返回普通的Map对象对应的不可变的版本
Map unmodifiaMap= Collections.unmodifiableMap(scores);
//若在不可变的版本中继续加热数据则会抛出UnsupportedOperationException异常
}
}