Collections工具类(操作Collection和Map的
2020-12-23 本文已影响0人
冯宏志
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CollectionsTest {
@Test
public void test1(){
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
System.out.println(list);//[1, 2, 3, 4, 5]
//reverse(List):反转
Collections.reverse(list);
System.out.println(list);//[5, 4, 3, 2, 1]
//shuffle(List):对list进行随机排序
Collections.shuffle(list);
System.out.println(list);
//sort(List,Comparator):根据指定的Comparator产生的顺序对List集合进行排序
Collections.sort(list);//默认调用Integer的Comparator
System.out.println(list);//[1, 2, 3, 4, 5]
//swap(List,int,int)
Collections.swap(list,0,1);
System.out.println(list);//[2, 1, 3, 4, 5]
//Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
//Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素
//Object min(Collection)
//Object min(Collection,Comparator)
Comparable max = Collections.max(list);
System.out.println(max);//5
//int frequency(Collection,Object):返回集合中指定元素的出现次数
list.add(1);
list.add(1);
int appearTime = Collections.frequency(list, 1);
System.out.println(appearTime);//3
//void copy(List dest,List src):将src中的内容复制到dest中
//List dest = new ArrayList();这样声明会报异常
List dest = Arrays.asList(new Object[list.size()]);
Collections.copy(dest,list);
System.out.println(dest);//[2, 1, 3, 4, 5, 1, 1]
/*Collections类中提供了多个synchronizedXxx()方法
* 该方法可将指定集合包装成线程同步的集合
* 从而解决多线程并发访问集合时的线程安全问题
*
* */
List list1 = Collections.synchronizedList(list);//返回的list1即为线程安全的集合
}
}