`

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排序Comparator和Comparable

    在Java编程语言中,排序是数据处理中一个非常常见的需求,而`Comparator`和`Comparable`接口则是实现排序的关键工具。这两个接口都是用于比较对象,但它们的应用场景和使用方式有所不同。 首先,`Comparable`接口是...

    java-java-lang包.pdf

    Java编程语言中的java.lang包是一个核心包,它提供了Java语言运行时的基础类库,包含了Java程序运行的基本数据类型、异常处理类以及一些用于系统级别的工具类和接口。java.lang包中的类和接口不需要程序员显示地导入...

    java-lang包详解

    在Java编程语言中,`java.lang`包是所有Java程序的基础,因为它包含了许多核心类和接口,这些类和接口是编写任何Java应用程序所必需的。由于这个包是自动导入的,因此程序员无需在代码中显式地导入`java.lang`。 1....

    Java SE编程入门教程 java泛型(共11页).pptx

    - `java.util.Comparator`和`java.lang.Comparable`:用于对象之间的比较。 这些主题共同构成了Java SE的基础,是理解和开发Java应用程序的关键。通过学习这些概念,开发者能够创建安全、高效和可维护的代码。

    基于Java的技术点实现整合

    7. **字符处理**:Java的`java.lang.String`类和`java.text`包提供了丰富的字符串和字符处理功能。例如,可以使用StringBuffer或StringBuilder进行字符串拼接,使用Character类进行字符判断和转换,使用Formatter类...

    Java_api查看.rar

    - `Comparable`和`Comparator`接口常用于排序操作,实现了这两个接口的对象可以进行比较。 5. **异常处理**: - Java使用异常处理机制来处理运行时错误。异常类位于`java.lang.Throwable`及其子类,如`...

    Java中Comparable和Comparator的区别

    在Java编程语言中,Comparable和Comparator接口是两个非常重要的组件,它们主要用来进行对象的比较和排序。了解它们之间的区别对于提升代码的可维护性和灵活性至关重要。 Comparable接口来源于java.lang包,它定义...

    java api大集合

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

    java中Comparable和Comparator的区别

    Java中的Comparable和Comparator接口在处理数据排序时都扮演着重要角色,但它们有着明显的区别。 **Comparable接口** 是Java基础语言包`java.lang`的一部分,它定义了一个单一的方法`compareTo(T o)`。任何实现了...

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

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

    Comparable与Comparator的区别Java开

    在Java编程语言中,`Comparable`接口和`Comparator`接口是两种重要的排序机制,它们用于对集合中的对象进行比较和排序。理解它们的区别对于任何Java开发者来说都是至关重要的。 首先,`Comparable`接口位于`java....

    Sorted Java

    "Sorted Java" 这个主题主要涉及Java编程语言中的排序算法和相关工具的使用。在Java中,排序是数据处理的重要部分,它涉及到数组、集合(如ArrayList、LinkedList)等数据结构的有序排列。以下是对这个主题的详细...

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

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

    Comparable&Comparator区别

    在Java编程中,为了对自定义对象进行排序,Java提供了两种接口:`Comparable`与`Comparator`。这两种接口各有优势,适用于不同的场景。本文将深入探讨这两种接口的区别及其应用场景,帮助读者更好地理解它们的工作...

    java面试题

    16. 排序方法和快速排序实现:Java中常用的排序算法包括冒泡排序、选择排序、插入排序、归并排序等。快速排序可以通过递归方式实现,选择一个基准值,将数组分为两部分,一部分小于基准值,另一部分大于基准值。 17...

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

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

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

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

    492.490.JAVA基础教程_常用类-自定义类实现Comparable自然排序(492).rar

    `Comparable`接口位于`java.lang`包中,它只有一个方法`compareTo(T o)`,用于比较当前对象与指定对象的大小关系。 **Comparable接口** `Comparable`接口是为那些需要比较的对象设计的。当你创建一个类,并希望它...

Global site tag (gtag.js) - Google Analytics