Collections工具类
总结于尚硅谷学习视频
CollectionsTest类
package com.day0309_1;
import org.junit.jupiter.api.Test;
import java.util.*;
/**
* Collections:操作Collection和Map的工具类
*
* 面试题:Collection和Collections的区别?
*
*
*/
public class CollectionsTest {
/*
* reverse(list):反转List中元素的顺序
* shuffle(list):对List集合元素进行随机排序
* sort(List):根据元素的自然顺序对指定List集合元素按升序排序
* sort(List, Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序
* swap(list, int, int):将指定list集合中的i处元素和j处元素进行交换
* Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
* Object max(Collection, Comparator):根据Comparator指定的顺序,返回给定集合中的 object min(Collection)
* Object min(Collection, Comparator)
* int frequency(Collection, object):返回指定集合中指定元素的出现次数
* void copy(list dest,List src):将src中的内容复制到dest中
* boolean replaceAll(list list, Object oldVal, object newVal):
*/
@Test
public void test2(){
List list=new ArrayList();
list.add(123);
list.add(43);
list.add(765);
list.add(-97);
list.add(0);
//报异常 IndexOutOfBoundsException("Source does not fit in dest");
// List dest=new ArrayList();
// Collections.copy(dest,list);
List dest=Arrays.asList(new Object[list.size()]);
System.out.println(dest.size());//List.size()
Collections.copy(dest,list);
System.out.println(dest);
/*
Collections 类中提供了多个synchronizedXxx()方法,
该方法可将指定的集合包装成线程同步的集合,从而可以解决
多线程并发访问集合的线程安全问题
*/
//返回的list1即为线程安全的list
List list1=Collections.synchronizedList(list);
}
@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);
// Collections.shuffle(list);
// Collections.swap(list,1,2);
int frequency = Collections.frequency(list,765);
System.out.println(list);
System.out.println(frequency);
}
}