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就是线程安全的
}
}