java:集合框架(TreeSet保证元素唯一和比较器排序的原理及代码实现)

本文深入讲解了Java中TreeSet如何保证元素唯一性及通过自定义Comparator接口实现按字符串长度排序的原理。通过具体代码示例,展示了如何创建比较器并将其应用于TreeSet,最终实现了按字符串长度从短到长的有序集合。

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

* A:案例演示
    * TreeSet保证元素唯一和比较器排序的原理及代码实现

按照字符串长度排序

重写了Comparator接口中的方法

class CompareByLen implements Comparator<String>{

	@Override
	public int compare(String s1, String s2) {//按照字符串长度比较
		int num=s1.length()-s2.length();//长度为主要条件
		return num==0?s1.compareTo(s2):num;//内容为次要条件
	}
	
}

 使用TreeSet比较器构造方法,传入重写的Comparator方法类对象

import java.awt.peer.ComponentPeer;
import java.util.Comparator;
import java.util.TreeSet;

import com.heima.bean.person;

public class Test1 {

	public static void main(String[] args) {
		TreeSet<String> ts=new TreeSet<>(new CompareByLen());
		ts.add("ads");
		ts.add("adsqwe");
		ts.add("adsqweqew");
		ts.add("adsdggjjdjg");		
		ts.add("adsqw");
		System.out.println(ts);
		
	}
}

运行结果:

[ads, adsqw, adsqwe, adsqweqew, adsdggjjdjg]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值