`

java.lang.Comparable应用1:比较和排序

    博客分类:
  • java
阅读更多
我个人觉得看例子说话比较实际点,希望看的人能从例子中获得收获!
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
/**
 * 这个是jdk1.4的版本,如果在1.5中会用得更加简单,这里我就不在多写
 * 用于基于LogoOrde的排序,根据logoOrder_displayOrder排序asc,再根据logoOrder_Id排序desc
 * @author huanglq
 *
 */
public class LogoOrder implements Comparable{
	
	int logoOrder_Id;
	
	int logoOrder_displayOrder;


	public LogoOrder(int logoOder_displayOrder,int logoOrder_Id) {
		super();
		this.logoOrder_displayOrder = logoOder_displayOrder;
		this.logoOrder_Id = logoOrder_Id;
		
	}

	public int getLogoOrder_displayOder() {
		return logoOrder_displayOrder;
	}

	public void setLogoOrder_displayOder(int logoOder_displayOrder) {
		this.logoOrder_displayOrder = logoOder_displayOrder;
	}

	public int getLogoOrder_Id() {
		return logoOrder_Id;
	}

	public void setLogoOrder_Id(int logoOrder_Id) {
		this.logoOrder_Id = logoOrder_Id;
	}

	public int compareTo(Object o) {
		int order=this.logoOrder_displayOrder-((LogoOrder)o).logoOrder_displayOrder;
		if(order!=0){
	    	return order;
		}else{
			return ((LogoOrder)o).logoOrder_Id-this.logoOrder_Id;
		}
	}
	
	public String toString(){
		return "logoOrder_displayOder:"+logoOrder_displayOrder+"  logoOder_Id:"+logoOrder_Id;
	}
	
	public static void main(String[] args){
		Map map2=new TreeMap();
		LogoOrder lo1=new LogoOrder(1,2);
		map2.put(lo1, "two");
		map2.put(new LogoOrder(1,1), "one");
		map2.put(new LogoOrder(2,1), "three");
		map2.put(new LogoOrder(2,1), "THREE@");
		Iterator it2=map2.keySet().iterator();
		while(it2.hasNext()){
			System.out.println(it2.next());
		}
		System.out.println(map2.get(new LogoOrder(2,1)));
	}

}
/**
输出结果:
logoOrder_displayOder:1  logoOder_Id:2
logoOrder_displayOder:1  logoOder_Id:1
logoOrder_displayOder:2  logoOder_Id:1
THREE@  ---说明Map如果加入了一样的key,则这个key值的value会覆盖掉原来的value
*/
分享到:
评论

相关推荐

    java_lang包详解.pdf

    Cloneable接口表示对象可以被克隆,Comparable接口则允许类的对象进行比较排序。 java.lang包还包含了一些与安全、线程和内存管理相关的类,如SecurityManager用于安全管理,Thread和ThreadGroup是线程相关的类,...

    java api大集合

    - **`Comparable`和`Comparator`**:定义元素的自然排序和自定义排序。 3. **多线程** - **`java.lang.Thread`**:表示一个执行线程,通过`start()`方法启动。 - **`synchronized`关键字**:用于同步方法或代码...

    Java 的常用包与数组的复制与排序视频1

    1. `java.lang`:这是所有Java程序默认导入的包,包含了基本数据类型、异常处理和系统相关的类,如`String`、`Integer`、`System`、`Exception`等。 2. `java.util`:提供了集合框架、日期时间、随机数、位集、队列...

    很多java面试题目题目,pdf清晰版电子书。很不错

    - `HashSet` 和 `TreeSet`:`HashSet` 是无序且不保证元素顺序的,而 `TreeSet` 通过 `Comparator` 或 `Comparable` 自然排序。 2. **多线程**: - 创建线程的方式:继承 `Thread` 类,实现 `Runnable` 接口,...

    Java面试题,自己查看学习的程度

    20. 反射的包和核心类:如`java.lang.reflect`包下的`Class`、`Constructor`、`Method`和`Field`类。 21. 获取Class的三个过程:通过类名使用`Class.forName()`,通过对象使用`obj.getClass()`,通过.class属性。 ...

    Java 的常用包与数组的复制与排序27

    在Java编程语言中,了解和熟练使用常用的包以及掌握数组的复制与排序是成为Java开发者的必备技能。这里我们将深入探讨这些主题。 首先,我们来看看Java中的“包”(Package)。包是Java的一个重要特性,它主要用于...

    ArraySort排序

    对于数组中的元素类型本身支持比较(如`Integer`, `String`等),我们可以通过让类实现`java.lang.Comparable`接口来直接排序。`Comparable`接口同样有一个`compareTo()`方法,但它是类的成员方法,用于定义类实例...

    JAVA枚举JAVA枚举.doc

    2. **自动实现 Comparable 和 Enum**:每个枚举类型都默认继承了 `java.lang.Enum` 类,因此枚举实例自动实现了 `Comparable` 接口,可以直接比较枚举值的顺序。 3. **枚举集合**:可以通过 `values()` 方法获取...

    #在千锋“逆战”学习第19天#接口、内部类 、排序(java.lang.Comparable)完成Student排序

    用哥德巴赫猜想来总结,哥德巴赫猜想就是要去输入一个偶数,输出这个偶数能被分解为哪两个质数的和,具体实现就是要去验证拆分出来的两个数是否为质数。 传统的方法我们需要先把验证质数的方法写好,然后再去将输入...

    Java对象的比较方式.pdf

    Java对象的比较方式 Java对象的比较方式是Java编程语言中的一种基础知识点。...Java对象的比较方式是Java编程语言中的一种基础知识点,通过使用Comparable接口或Comparator接口,可以实现对象之间的比较和排序。

    Java对象的比较方式.doc

    总之,Java的`Comparable`接口和`Comparator`接口为对象的比较和排序提供了强大的工具。`Comparable`适合于类的自然排序,而`Comparator`则提供了更大的灵活性,允许在运行时定义和改变比较规则。在实际开发中,理解...

    Java 的常用包与数组的复制与排序25

    在Java编程语言中,"Java的常用包"和"数组的复制与排序"是学习的基础且重要的部分。这里,我们主要探讨的是Java的核心库包以及如何处理数组,特别是复制和排序的操作。 首先,让我们深入了解Java的常用包。Java标准...

    Comparable.pdf

    在Java编程语言中,`Comparable`接口和`Comparator`接口是用来进行对象排序的关键工具,尤其在处理自定义对象集合时。下面将详细解释这两个接口及其核心方法`compareTo()`和`compare()`。 首先,`Comparable`接口是...

    Comparable接口和Comparator接口的比较

    来自java.lang.Comparable。Comparable是 排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外...

    笔试题_java

    1. **JSP内置对象**:JSP(JavaServer Pages)提供了九个内置对象,它们分别是:request(请求对象)、response(响应对象)、session(会话对象)、application(应用程序对象)、out(输出对象)、pageContext...

    java 中Comparable与Comparator详解与比较

    在Java编程语言中,Comparable和Comparator接口用于比较对象的顺序,尤其在进行排序操作时非常关键。两者虽然目的相似,但使用方式和应用场景有所区别。 Comparable接口定义在`java.lang`包中,它只有一个方法`...

    Comparable与Comparator的区别

    在Java编程语言中,Comparable和Comparator是两个非常重要的接口,它们都用于对象的比较和排序。下面是关于这两个接口的详细解释: **Comparable接口** Comparable接口位于`java.lang`包下,它是一个对象自比较的...

    良葛格java jdk 5.0学习笔记

    通过深入学习这些JDK 5.0的新特性,你将能更好地理解和应用Java语言,提高代码质量,提升编程效率。这份"良葛格java jdk 5.0学习笔记"将会是你宝贵的参考资料,帮助你在Java编程的道路上不断进步。

    Java 的常用包与数组的复制与排序24

    "Java的常用包"通常包括`java.lang`、`java.util`、`java.io`等核心包,它们包含了Java开发中最基本和最常用的类和接口。 `java.lang`包是最基础的包,无需import即可直接使用,它包含了所有Java程序的基础类,如`...

    Java Comparable和Comparator对比详解

    Java 中的 Comparable 和 Comparator 是两个常用的接口,用于实现对象的比较和排序。它们都是 Java 中的接口,都是用于比较对象的大小的,但它们有所不同。 Comparable 接口 Comparable 接口位于 java.lang....

Global site tag (gtag.js) - Google Analytics