Java中,Collections工具类的使用

Collections:操作Collection、Map的工具类

常用方法:

一、排序操作:

  • reverse(List) 反转List中元素的顺序
  • shuffle(List) 对List中的元素进行随机的排序
  • sort(List) 根据元素的自然排序对指定的List集合元素进行升序排序。(List中的参数必须是类或包装类)
  • sort(List,Comparator) 根据指定的Comparator产生的顺序对List集合元素进行排序。(List中的参数必须是类或包装类)
  • swap(List,int,int) 将集合List i 处和 j 处的元素互换

二、查找、替换操作

  • Object max(Collection) 根据自然排序,返回最大的元素。(List中的参数必须是类或包装类)
  • Object max(Colection,Comparator) 根据定制排序,返回最大的元素。(List中的参数必须是类或包装类)
  • Object min(Collection) 根据自然排序,返回最小的元素。(List中的参数必须是类或包装类)
  • Object min(Collection,Comparator) 根据定制排序,返回最小的元素。(List中的参数必须是类或包装类)
  • int frequency(Collection,Object) 返回集合中指定元素出现的次数
  • void copy(List dest,List src) 将src中的内容复制到dest中
  • boolearn replace(List list,Object oldValue,Object newValue) 使用newValue替换list中所有的oldValue

代码举例:

import java.util.ArrayList;
import java.util.Collections;

public class CollectionTest {
	public static void main(String[] args) {
		CollectionTest ct = new CollectionTest();
		ct.test();
	}
	public void test() {
		ArrayList arrayList = new ArrayList();
		arrayList.add(123);
		arrayList.add(456);
		arrayList.add(789);
		arrayList.add(123);
		arrayList.add("你好");
		
		System.out.println("原始的arrayList:"+arrayList);
		//reverse(List)  反转List中元素的顺序
		Collections.reverse(arrayList);
		System.out.println("使用Collections.reverse后的arrayList:"+arrayList+"\n");
		
		
		//shuffle(List)  对List中的元素进行随机的排序
		Collections.shuffle(arrayList);
		System.out.println("使用Collections.shuffle后的arrayList:"+arrayList+"\n");
		
		swap(List,int,int)   将集合List i 处和 j 处的元素互换
		Collections.swap(arrayList, 0, 3);
		System.out.println("使用Collections.swap(arrayList, 0, 3)后的arrayList"+arrayList+"\n");
		
		//int frequency(Collection,Object)  返回集合中指定元素出现的次数
		int frequency = Collections.frequency(arrayList, 123);
		System.out.println("arrayList中123出现的次数:"+frequency+"\n");
		
		//boolearn replace(List list,Object oldValue,Object newValue) 使用newValue替换list中所有的oldValue
		Collections.replaceAll(arrayList, 123, null);
		System.out.println("在arrayList中使用null替换所有的123:"+arrayList+"\n\n");
		
		
		ArrayList arrayList2 = new ArrayList();
		arrayList2.add("我爱你");
		arrayList2.add("中国");
		arrayList2.add("你好");
		System.out.println("原始的arrayList2:"+arrayList2);
		
		//sort(List)  根据元素的自然排序对指定的List集合元素进行升序排序(List中的参数必须是类或包装类)
		Collections.sort(arrayList2);
		System.out.println("使用Collections.sort后的arrayList2:"+arrayList2+"\n");
		
		//max(Collection)  根据自然排序,返回最大的元素(List中的参数必须是类或包装类)
		Object max = Collections.max(arrayList2);
		System.out.println("自然排序后arrayList2中的max:"+max+"\n");
		
		//Object min(Collection,Comparator)  根据定制排序,返回最小的元素(List中的参数必须是类或包装类)
		Object min = Collections.min(arrayList2);
		System.out.println("自然排序后arrayList2中的min:"+min+"\n");
	}
}

在这里插入图片描述
三、保证线程安全的方法
synchronizedXxx()
该方法可以使指定的集合包装成线程安全的集合,并返回
例如:

  • Collections.synchronizedList(List) 将线程不安全的List,返回线程安全的List
  • Collections.synchronizedCollection(Collection) 将线程不安全的Collection,返回线程安全的Collection
  • Collections.synchronizedMap(Map) 将线程不安全的Map,返回线程安全的Map
  • Collections.synchronizedSet(Set) 将线程不安全的Set,返回线程安全的Set

下面以ArrayList作为示范:

public class CollectionTest {
	public static void main(String[] args) {
		CollectionTest ct = new CollectionTest();
		ct.test();
	}
	public void test() {
		
		//我们可以知道ArrayList是一个线程不安全的集合
		ArrayList arrayList = new ArrayList();
		arrayList.add("我爱你");
		arrayList.add("中国");
		arrayList.add("你好");
		
		//将将线程不安全的集合对象作为参数传入synchronizedXxx()方法中
		List synchronizedList = Collections.synchronizedList(arrayList);
		//此时的synchronizedList就是线程安全的集合
		System.out.println(synchronizedList);
	}
}

在这里插入图片描述

面试题:Collection和Collections的区别?

  • Collection是一个集合的接口;Collections是一个工具类
  • Collections是操作Collection、Map的工具类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值