黑马程序员——java——自定义一个比较器,按照字符串的长度升序的方法来比较字符串进行储存

自定义一个比较器,按照字符串的长度升序的方法来比较字符串进行储存

import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
class Mycompara implements Comparator
{
   //自定义一个比较器,按照字符串的长度来比较字符串,然后对其进行储存
	//如果字符串的长度一样长了后,再依据字符内容进行排序
	public int compare(Object o1, Object o2) {
		// TODO Auto-generated method stub
		String s1 = (String)o1;
		String s2 = (String)o2;
		int i = s1.length()-s2.length();
		if(i==0)
			return s1.compareTo(s2);
		return i;
	}
	}
public class StringLengthCompara
{
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		TreeSet ts = new TreeSet(new Mycompara());
		ts.add("abhd");
		ts.add("abd1111");
		ts.add("abd2mk");
		ts.add("abdj");
		ts.add("abod");
		ts.add("aibd");
		Iterator<String> it = ts.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}

	}

}<span style="font-family:FangSong_GB2312;">
</span>

运行程序:

时间: 2025-01-13 07:36:15

黑马程序员——java——自定义一个比较器,按照字符串的长度升序的方法来比较字符串进行储存的相关文章

黑马程序员——java——自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序

自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序 import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; //自定义一个比较器 class Mycompare implements Comparator { @Override public int compare(Object o1, Object o2) { // TODO Auto-generated method s

黑马程序员——java——获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序

获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class Test5 { public static void main(String[] args) th

黑马程序员——java——模拟一个字符串中的trim方法去掉一个字符串两端的空格

模拟一个字符串中的trim方法去掉一个字符串两端的空格 public class StingTrimDemo { //模拟一个trim方法, 去掉一个字符串两边的空格], public static void main(String[] args) { // TODO Auto-generated method stub String s = " my java "; System.out.println("未去空格前的字符串+++:[ "+s+" ]&q

黑马程序员——java——对一个字符串中的数值进行从小到大的排序

对一个字符串中的数值进行从小到大的排序 例如: String s = "8 96 88 58 44 52 12 13 39 96 6"; public class SortIntToStringDemo { // 对一个字符串中的数值进行从小到大的排序. public static void main(String[] args) { String s = "8 96 88 58 44 52 12 13 39 96 6"; //调用自定义方法将字符串中的数字进行排序

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员---Java多线程

---------------------- Android开发.java培训.期待与您交流! ---------------------- 线程与进程是程序运行中体现的两个名词,它包含这不同的程序域.进程指的是一个正在运行的程序,如:360,QQ运行时就是不同的两个进程.当你打开windows任务管理器时,看到的每个进程就是此时windows中正在运行的程序.线程则就是进程中的一个个独立的控制单元,线程控制着进程的执行,也就是说每个正在运行的程序中就包括着很多的线程. 主线程:Java虚拟机运

黑马程序员——java基础——集合(Collection)

 黑马程序员--java基础--集合(Collection) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 集合框架的构成及分类,如下图: 1.为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 2.数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的:集合长度是可变的.数组中可以存储基本数据类型,集合只能存储对象. 3.

黑马程序员--Java基础--01基本概念

1.Java的三大技术架构 JAVAEE(Java Platform Enterprise Edition):  开发企业环境下的应用程序,主要针对web程序开发: JAVASE(Java Platform Standard Edition): 完成桌面应用程序的开发,是其他两者的基础 JAVAME(Java Platform Micro Edition): 开发电子消费产品和嵌入式设备,如手机中的程序 我对三大技术构架理解 1.三大技术是指哪三大技术呢? 答:三大技术分别指JAVAEE,JAV

黑马程序员——java基础——异常

黑马程序员--java基础--异常 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 异常 就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信息存在.当出现多属性信息最方便的方式就是将这些信息进行封装.异常就是java按照面向对象的思想将问题进行对象封装. 异常体系 --------java.lang.Thro