package java2; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * Collections:操作Collection和Map的工具类 * * * * 面试题:Collection和Collections的区别? * 集合 工具类 * * @author 冀帅 * @date 2020/8/12-17:41 */ public class CollectionsTest { /* * reverse(List):反转List中的元素顺序 * shuffle(List);对List集合元素进行随机排序 * sort(List):根据元素的自然顺序对指定的List集合按升序排序 * sort(List ,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序 * swap(List,int,int):将指定list集合中i处元素和j处元素进行交换 * ..... *int frequency(Collection,Object):返回指定集合中指定元素出现的次数。 *void copy(List dest,List src):将src中的内容复制到dest中 * */ @Test public void test1(){ List list = new ArrayList(); list.add(123); list.add(43); list.add(765); list.add(765); list.add(765); list.add(-97); list.add(0); System.out.println(list); // Collections.reverse(list);//反转List中的元素顺序 // Collections.shuffle(list);//随机化处理 // Collections.sort(list);//调用Integer里的comparto方法进行自然排序,从小到大 // Collections.swap(list,1,2);//交换位置 System.out.println(Collections.frequency(list,765));//3次 } @Test public void test2(){ List list = new ArrayList(); list.add(123); list.add(43); list.add(765); list.add(-97); list.add(0); // List dest = new ArrayList();错误写法 dest长度为0 放不进去 异常:IndexOutOfBoundsException // Collections.copy(dest,list);//把list的内容复制到dest当中 //正确的: List dest = Arrays.asList(new Object[list.size()]);//长度刚好就是list的长度 System.out.println(dest.size());//5 Collections.copy(dest,list); System.out.println(dest); /* * Collections 类中提供了多个synchronizedXxx()方法, * 该方法可使将指定集合包装成线程同步的集合, * 从而解决多线程并发访问集合是的线程安全问题 * * */ List list1 = Collections.synchronizedList(list);//返回的list1就是线程安全的 } }