package com.iflytek.prac;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Test;
/**
* Collection 工具类 Collections,用于操作汇合的工具类
* @author George
*
*/
public class TestCollections {
/*
* reverse(List):反转 List 中元素的程序
shuffle(List):对 List 汇合元素进行随机排序
sort(List):依据元素的天然程序对指定 List 汇合元素按升序排序
sort(List,Comparator):依据指定的 Comparator 产生的程序对 List 汇合元素进行排序
swap(List,int,int):将指定 list 汇合中的 i 处元素和 j 处元素进行替换
*/
@Test
public void testCollection1(){List list = new ArrayList();
list.add(123);
list.add(233);
list.add(453);
list.add(213);
System.out.println(list);//[123, 233, 453, 213]
// 汇合的反转
Collections.reverse(list);
System.out.println(list);//[213, 453, 233, 123]
// 汇合的随机排序
Collections.shuffle(list);
System.out.println(list);//[213, 233, 123, 453]
// 汇合的天然排序
Collections.sort(list);
System.out.println(list);//[123, 213, 233, 453]
// 将汇合中的 i 元素和 j 元素进行替换
Collections.swap(list, 0, 3);
System.out.println(list);
}
/*
* 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):应用新值替换 List 对象的所有旧值
*/
@Test
public void testCollections2(){List list = new ArrayList();
list.add(123);
list.add(456);
list.add(12);
list.add(78);
list.add(456);
// 返回汇合中的最大的元素
Object obj = Collections.max(list);
System.out.println(obj);//456
// 返回汇合中指定元素在汇合中呈现的次数。int count = Collections.frequency(list, 456);
System.out.println(count);//2
// 实现 List 的复制
List list1 = Arrays.asList(new Object[list.size()]);
Collections.copy(list1, list);
System.out.println(list1);
// 通过 synchronizedList 保障线程的平安
List list2 = Collections.synchronizedList(list);
System.out.println(list2);
// 应用新值替换 List 对象的所有旧值
boolean b = Collections.replaceAll(list, 456, 00);
System.out.println(b);//true
System.out.println(list);//[123, 0, 12, 78, 0]
}
}
本文来源于:宋文超 super,专属平台有 csdn、思否 (SegmentFault)、简书、开源中国 (oschina),转载请注明出处。