集合工具类Collections

本文详细介绍了Java中Collections工具类的功能及用法,包括列表元素的替换、排序、查找等操作,并展示了如何通过Collections将集合转换为数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Collections:对集合(一般是List集合)操作的工具类 


		List<String> list = new ArrayList<String>();
		
		list.add("a");
		list.add("abcd");
		list.add("bbc");
		list.add("cc");
		list.add("ab");
		
		//使用指定元素替换指定列表中的所有元素
		Collections.fill(list,"AA");


		//使用另一个值替换列表中出现的所有某一指定值
		Collections.replaceAll(list, "a", "A");
		
		sop("原来顺序:"+list);	
		
		//反转指定列表中元素的顺序。
		Collections.reverse(list);
		sop("反转顺序:"+list);
		
		//根据元素的自然顺序 对指定列表按升序进行排序。
		Collections.sort(list);
		sop("自然顺序:"+list);
		
		//返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序
		Collections.sort(list,Collections.reverseOrder());
		sop("强逆1顺序:"+list);


		//返回一个比较器,它强行逆转指定比较器的顺序
		Collections.sort(list,Collections.reverseOrder(Collections.reverseOrder(new comp1())));
		sop("强逆2顺序:"+list);
		
		//根据指定比较器产生的顺序对指定列表进行排序
		Collections.sort(list,new comp1());
		sop("比较顺序:"+list);


		//二分查找(必须有序)
		sop(Collections.binarySearch(list,"cc"));


		//根据元素的自然顺序,返回给定 collection 的最大元素
		sop(Collections.max(list));
		
		// 在指定列表的指定位置处交换元素
		Collections.swap(list,1,3);


		//使用指定的随机源对指定列表进行置换
		Collections.shuffle(list);
		sop("随机顺序:"+list);




class comp1 implements Comparator<String>
{
	@Override
	public int compare(String o1, String o2) {
		
		if(o1.length()==o2.length())
			return o1.compareTo(o2);
		return o1.length( )  >  o2.length() ? 1 : -1;
	}
}



-------------------------------------------------------------------------------
集合变数组:Collection接口中的toArray(T[] a)方法
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。


public class CollectionToArray {


	public static void main(String[] args) {
		
		ArrayList<String> al = new ArrayList<String>();
		al.add("abc1");
		al.add("abc2");
		al.add("abc3");
		/*
		 * 指定类型的数组到底要定义多长?
		 * 1.当指定类型的数组长度小于集合长度的size,
		 * 	那么该方法内部会创建一个新的数组,长度为集合的size
		 * 2.当指定类型的数组长度大于集合的死泽,就不会创建新的数组
		 * 	但多余部分会以null值填充
		 * 
		 * 为什么要把集合变成数组?
		 * 为了限定对元素的操作,不允许再进行增删了
		 * */
		
		String[] arr = al.toArray(new String[al.size()]);
		System.out.println(Arrays.toString(arr));
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值