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);
}
}