`
kennykinte
  • 浏览: 7926 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java对象排序2种实现(Comparable, Comparator)

    博客分类:
  • java
阅读更多
Java里一组对象排序有2种方法:
1. 类自身实现Comparable接口;
2. 设计一个类,实现Comparator接口,作为比较器参数,传入集合工具类方法参数中
   (比如Collections.sort(List<T> list, Comparator<? super T> c)).


package test;

import java.util.*;

public class ClassCompare {
	public static void main(String[] args) {
		List<User> userList = new ArrayList<User>();
		for (int i = 0; i < 5; i++) {
			User user = new User();
			user.setId(5 - i);
			user.setName("name" + i);
			userList.add(user);
		}
		Collections.sort(userList);
		System.out.println(userList); //[1-name4, 2-name3, 3-name2, 4-name1, 5-name0]
		Collections.sort(userList, new myComparator());
		System.out.println(userList); //[5-name0, 4-name1, 3-name2, 2-name3, 1-name4]
	}
}

// 1.实现Comparable接口
class User implements Comparable<User> {
	@Override
	public String toString() {
		return id + "-" + name;
	}

	private int id;
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public int compareTo(User o) {
		return this.id - o.id;
	}
}

// 2.实现Comparator接口
class myComparator implements Comparator<User> {
	@Override
	public int compare(User arg0, User arg1) {
		return arg0.getName().compareTo(arg1.getName());
	}
}
分享到:
评论

相关推荐

    java排序Comparator和Comparable

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

    Java中Comparable和Comparator 2种实现方式学习

    在Java编程语言中,排序是常见的操作,而`Comparable`和`Comparator`接口则是实现对象排序的两种主要方式。这篇文章将深入探讨这两种实现方式及其在实际编程中的应用。 首先,`Comparable`接口位于`java.lang`包下...

    Comparable&Comparator区别

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

    Comparable接口和Comparator使用示例

    Comparable 接口和 Comparator 是两种常用的比较和排序方式。在本文中,我们将通过实例代码,详细介绍 Comparable 接口和 Comparator 的使用示例。 Comparable 接口 Comparable 接口是 Java 中的一个接口,它提供...

    java中Comparable和Comparator的区别

    在Java编程语言中,Comparable和Comparator接口是两个重要的概念,它们都用于对象的排序,但有着不同的使用场景和特点。本文将深入探讨这两个接口的区别,以及它们在实际开发中的应用。 首先,我们来了解一下...

    Java中Comparable和Comparator的区别

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

    java对象排序

    - **Comparator接口**:如果类本身不实现`Comparable`,或者需要自定义排序规则,可以使用`Comparator`。`Comparator`提供了一个`compare()`方法,用于比较两个对象。 ```java Comparator&lt;MyObject&gt; comparator = ...

    java的Comparator和Comparable.docx

    在 Java 中,Comparator 和 Comparable 是两个非常重要的接口,它们用于对象的排序操作。这两个接口都是在 java.util 包中定义的,主要用于定制排序规则。 **一、Comparator 接口** Comparator 接口允许我们创建...

    Java 对象排序详解.rar_java 对象排序_对象_排序

    要对自定义对象进行排序,你需要确保你的类实现了Comparable接口或者提供一个Comparator对象来定义比较规则。 ```java public class MyObject implements Comparable&lt;MyObject&gt; { int value; public int ...

    JAVA 对象数组按照多个属性进行排序

    在Java编程中,对象数组排序是一项常见的任务,...以上就是关于“JAVA 对象数组按照多个属性进行排序”的详细解析,希望对你理解Java排序机制有所帮助。在实际开发中,灵活运用这些技巧可以提高代码的可维护性和效率。

    java 按对象属性排序

    综上所述,Java提供多种方式来根据对象属性进行排序,包括实现`Comparable`接口,使用`Collections.sort()`方法,以及创建自定义的`Comparator`。在实际开发中,应根据具体需求选择合适的方法。通过理解这些概念,...

    Comparable与Comparator的区别Java开

    总结一下,`Comparable`和`Comparator`是Java中实现对象比较和排序的两种方式。`Comparable`适用于具有自然顺序的类,而`Comparator`适用于需要自定义比较逻辑的情况。掌握这两个接口的使用能帮助开发者更好地管理和...

    java 对象 排序

    - 对于`Collections.sort()`方法,你可以传递自定义的`Comparator`实例来实现对象的排序。 接下来,我们来看看如何实际应用这些知识: - **使用Collections.sort()**: - `Collections.sort()`是Java集合框架中...

    对比Java中的Comparable排序接口和Comparator比较器接口

    在Java编程语言中,Comparable和Comparator接口用于对对象进行比较和排序。这两个接口在很多情况下都能派上用场,但它们的应用场景和实现方式有所不同。 首先,Comparable接口是排序接口,意味着一个类如果实现了...

    comparator接口与Comparable接口的区别

    Comparator接口与Comparable接口是Java语言中两个重要的接口,它们都是用于比较和排序自定义类的对象的大小的。虽然它们两个都是用于比较的接口,但是它们有着不同的实现方式和应用场景。 相同之处:Comparator接口...

    Comparable与Comparator的区别

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

    Java中实现Comparable和Comparator对象比较

    Java提供了两种方式来实现对象的排序:Comparable接口和Comparator接口。这两种接口都用于定义比较规则,但使用场景和方式有所不同。 首先,Comparable接口是Java.lang包中的一个接口,它包含一个方法`compareTo(T ...

    Java对象排序中文排序SortedSet排序使用和源码讲

    要实现Java对象的排序,我们需要让这些对象的类实现Comparable接口或者提供Comparator。对于中文排序,我们主要关注的是字符串的比较,因为中文字符的排序规则不同于英文。在Java中,字符串的比较默认基于Unicode...

    java List中对象多属性排序及各属性排序设置

    总结来说,Java中的List可以通过自定义Comparator或者利用泛型和方法引用来实现对象多属性的动态排序。这种技术在处理复杂数据结构时非常有用,使得代码更加简洁且易于维护。通过学习和实践这部分内容,开发者可以...

Global site tag (gtag.js) - Google Analytics