Collections集合框架工具类

本文介绍如何使用Java的TreeSet结合自定义比较器进行字符串集合的排序,并演示了如何利用Collections.reverseOrder方法及其重载方法来反转排序顺序,仅通过一个比较器即可实现正序和倒序两种排序方式。

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

这儿使用了集合框架工具类 Collections的 reverSeOdrder() 及重载方法,一个是实现排序,一个是排序的反转,这样只需要写一个比较器就具有二个功能,而不需要写二个比较器,使用起来也是比较方法的,也有许多实现的地方。


import java.util.*;

//按字母顺序排序
class Strcomparator implements Comparator<String>	//比较
{
	public int compare(String str1,String str2)
	{
		//equals(); 返回布尔
		//compareTo(String anotherString) 
		//按字典顺序比较两个字符串。
		return str1.compareTo(str2);
	}
}

//按字符串长度排序
class StrLengthComparator implements Comparator<String>
{
	public int compare(String str1,String str2)
	{
		int length = str1.length() -str2.length();
		if(length>0)
			return 1;
		if(length<0)
			return -1;
		return length;
	}
}

class CollectionsDemo2 
{
	public static void main(String[] args) 
	{
		orderDemo();
	}

	public static void orderDemo()
	{
		//TreeSet<String> ts = new TreeSet<String>();
		//增加自己写的比较器
		//TreeSet<String> ts = new TreeSet<String>(new Strcomparator());
		//集合框架中的方法 
		//public static <T> Comparator<T> reverseOrder()
		//返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
		//TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());

		//按长度排序,从短到长。
		//TreeSet<String> ts = new TreeSet<String>(new StrLengthComparator());
		//如果要按从长到的排序,
		//方法一:改上面使用的比较器。
		//reverseOrder(); 有个重载方法
		//方法二:public static <T> Comparator<T> reverseOrder(Comparator<T> cmp)
		//返回一个比较器,它强行逆转指定比较器的顺序。		
		TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new StrLengthComparator()));


		ts.add("abcde");
		ts.add("aaa");
		ts.add("kk");
		ts.add("bbb");
		ts.add("adfsadfasf");
		ts.add("a");

		
		Iterator it = ts.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}

	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值