/**
* 操作Collection以及Map的工具类:Collections
* 面试题:区分Collection和Collections
*
Collection:可以操作List和Set
*
Collections:可以操作Collection以及Map
*
*
*/
public class Test_Collections {
//
@Test
public void Test1(){
List list = new ArrayList();
list.add(123);
list.add(456);
list.add(12);
list.add(123);
System.out.println(list);
Collections.reverse(list);
//反转排序元素
System.out.println(list);
Collections.shuffle(list);
//随机排序元素
System.out.println(list);
Collections.sort(list);
System.out.println(list);
//从小到大排序元素
Collections.swap(list, 0, 2);
//交换第0下标的元素和第2下标的元素
System.out.println(list);
}
//
@Test
public void Test2(){
List list = new ArrayList();
list.add(123);
list.add(456);
list.add(12);
list.add(78);
Object o1 = Collections.max(list);
//元素里的最大值
System.out.println(o1);
Object o2 = Collections.min(list);
//元素里的最小值
System.out.println(o2);
int count = Collections.frequency(list, 456);
//查找元素里是否有此元素的个数
System.out.println(count);
//
实现List的复制
//
List list1 = new ArrayList();
//错误的实现方式
List list1 = Arrays.asList(new Object[list.size()]);
Collections.copy(list1, list);
//将list中的元素拷贝到list1中
System.out.println(list1);
//
通过如下的方法就可以保证list的线程安全性
List list2 = Collections.synchronizedList(list);
//将不安全的变成安全的
}
//
@Test
public void Test3(){
Scanner s = new Scanner(System.in);
System.out.println("请输入10个整数:");
List list = new ArrayList();
for(int i = 0 ; i < 10 ; i++){
int j = s.nextInt();
list.add(i);
}
System.out.println("按照倒序的顺序显示:");
Collections.reverse(list);
Iterator iterator = list.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next());
}
System.out.println();
System.out.println("按照从大到小的顺序显示:");
Collections.sort(list);
//默认从小到大排序
Collections.reverse(list);
Iterator iterator1 = list.iterator();
while(iterator1.hasNext()){
System.out.print(iterator1.next());
}
}