`

Collections Comparable 内部定义实现排序

    博客分类:
  • JAVA
阅读更多
在上一篇文章中,介绍了Comparable Comparator排序的不同,还具体实现了Comparator排序的方法,在这里,简单实现Comparable接口完成的排序,数据同上一篇,只是具体实现的方法改变了.

DataBean.java
package com.baomw;

import java.io.Serializable;
import java.text.MessageFormat;

public class DataBean implements Serializable,Comparable<DataBean>{

	private static final long serialVersionUID = 1L;

	private long id;
	private String name;
	private String sex;

	public DataBean() {

	}

	public DataBean(long id, String name, String sex) {
		this.id = id;
		this.name = name;
		this.sex = sex;
	}

	public long getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

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

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return MessageFormat.format("id:{0},name:{1},sex:{2}", this.id,
				this.name, this.sex);
	}

	@Override
	public int compareTo(DataBean o) {
		return this.name.compareTo(o.getName());
	}
}

说明:需要在类内部实现Comparable接口,并实现该接口的compareTo的方法.在这里使用的String中已经实现的compareTo的方法,按字母进行排序.

RunDemoMain.java

package com.baomw;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class RunDemoMain {

	public static void main(String[] args) {
		List<DataBean> dataBeans = new ArrayList<DataBean>();
		dataBeans.add(new DataBean(23, "b", "w"));
		dataBeans.add(new DataBean(34, "e", "w"));
		dataBeans.add(new DataBean(12, "s", "w"));
		dataBeans.add(new DataBean(10, "c", "w"));
		dataBeans.add(new DataBean(19, "g", "w"));
		dataBeans.add(new DataBean(78, "a", "w"));
		dataBeans.add(new DataBean(66, "w", "w"));
		dataBeans.add(new DataBean(50, "r", "w"));

		System.out.println("==========排序前==========");
		for (DataBean bean : dataBeans) {
			System.out.println(bean);
		}

		System.out.println("==========排序后==========");
		Collections.sort(dataBeans);
		
		for (DataBean bean : dataBeans) {
			System.out.println(bean);
		}
	}
}


运行后显示:
==========排序前==========
id:23,name:b,sex:w
id:34,name:e,sex:w
id:12,name:s,sex:w
id:10,name:c,sex:w
id:19,name:g,sex:w
id:78,name:a,sex:w
id:66,name:w,sex:w
id:50,name:r,sex:w
==========排序后==========
id:78,name:a,sex:w
id:23,name:b,sex:w
id:10,name:c,sex:w
id:34,name:e,sex:w
id:19,name:g,sex:w
id:50,name:r,sex:w
id:12,name:s,sex:w
id:66,name:w,sex:w
分享到:
评论

相关推荐

    java List 排序 Collections.sort

    在`Collections.sort()`内部,使用了一种称为“快速排序”的高效排序算法。快速排序是一种分治策略,通过选择一个基准值,将数组分为两部分,左边的元素都小于基准,右边的元素都大于基准,然后再对左右两部分递归地...

    java 使用Collections类对List的排序操作

    1. **自然排序**:如果 `List` 中的元素是实现了 `Comparable` 接口的对象,那么可以使用 `Collections.sort()` 方法进行自然排序。`Comparable` 接口定义了一个 `compareTo()` 方法,该方法用于比较对象之间的大小...

    java排序Comparator和Comparable

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

    java中Collections.sort排序详解

    其中,list是要排序的列表,c是比较器对象,用于定义排序的规则。如果不提供比较器对象,那么将使用列表元素的自然顺序进行排序。 Comparator接口: Comparator接口是一个函数式接口,用于定义比较规则。它有两个...

    Collections集合工具类排序.docx

    自然排序是指列表中的元素必须实现Comparable接口,该接口定义了一个`compareTo(T o)`方法,用于比较当前对象与指定对象的大小关系。例如,对于整型ArrayList,Integer类已经实现了Comparable接口,所以可以直接调用...

    java 实现Comparable接口排序,升序、降序、倒叙

    由于我们已经实现了 Comparable 接口,Collections.sort() 方法将根据我们定义的 compareTo 方法对列表进行排序。最后,我们打印排序后的列表,以便查看排序结果。 使用 Comparable 接口对 Java 对象进行排序非常...

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

    例如,如果你有一个`Student`类,你可以根据学生的年龄或者成绩来定义排序规则。 ```java public class Student implements Comparable&lt;Student&gt; { private String name; private int age; // 构造函数、...

    java中Comparable和Comparator的区别

    当你需要对一个集合(如ArrayList或LinkedList)进行排序时,只需确保其中的元素类型实现了Comparable接口,然后调用Collections.sort()方法即可。 ```java List&lt;String&gt; list = new ArrayList(); list.add("apple...

    Java Collections.sort()实现List排序的默认方法和自定义方法

    在使用Collections.sort()方法时,需要注意的是,元素的类型必须实现Comparable接口,并且重写compareTo()方法,以便对元素进行比较排序。如果元素类型没有实现Comparable接口,将抛出ClassCastException异常。 ...

    comparator接口与Comparable接口的区别

    Comparable接口是定义在类内部的,例如,我们可以在Person类中实现Comparable接口,以便比较Person类的对象的大小。这样,Person类的对象就具有了比较大小的功能,可以随时随地的拿来比较大小。例如,我们可以使用...

    JAVA中Collections工具类sort()排序方法

    这种方法允许用户通过提供一个实现了`Comparator`接口的对象来定义排序规则。`Comparator`接口有一个`compare()`方法,你需要重写这个方法以指定比较项目。这种方法更灵活,因为可以在类外部定义比较逻辑,适用于...

    Java中Comparable和Comparator的区别

    例如,当我们有一个自定义类的集合,并且需要按照多种方式进行排序时,可以先让类实现Comparable接口,表示其默认的排序规则,然后在需要其他排序规则时,创建Comparator实例并传递给Collections.sort()或者TreeSet...

    推选Comparable自比较接口PPT资料.pptx

    此外,通过Java的工具类`Collections`和`Arrays`,可以对实现了Comparable接口的对象列表或数组进行自动排序,如使用`Collections.sort()`和`Arrays.sort()`方法。 在Java中,一些预定义的类,如`Integer`、`Double...

    comparable和compartor区别

    当我们希望一个类能够按照某种规则进行排序时,就可以让这个类实现`Comparable`接口,并重写`compareTo()`方法来定义比较逻辑。 **1. Comparable接口定义** ```java public interface Comparable&lt;T&gt; { int ...

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

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

    Java Collections.pdf

    - **定制排序**:通过实现`Comparator`接口定义自定义的排序规则。 #### 六、集合的实用工具类 - **Arrays**:提供静态方法对数组进行操作。 - **Collections**:提供静态方法对集合进行操作。 - **Stream API**:...

    java中Collections.sort排序函数用法详解

    如果列表中的元素实现了 `Comparable` 接口,那么 `Collections.sort()` 会使用元素的自然顺序进行排序。例如,如果你有一个包含整数的列表,它们会按照从小到大的顺序排序。对于自定义类,需要重写 `Comparable` ...

    java的Comparator和Comparable.docx

    当一个类实现了 Comparable 接口,那么该类的对象就可以直接调用 Collections.sort 或 Arrays.sort 进行排序。 例如,User 类原本没有排序功能,但当我们让它实现 Comparable&lt;User&gt; 接口后,就可以为 User 对象添加...

    【List、Set、数据结构、Collections】.pdf

    其中,Collections工具类可以用于实现单个集合的排序功能,通过使用Comparable接口或者Comparator接口来定义元素的排序规则。 常见的数据结构包括栈、队列、数组、链表和红黑树。栈是一种后进先出(LIFO)的数据...

    Comparable与Comparator的区别Java开

    当类的实例实现`Comparable`接口时,它们可以被直接传递给`Collections.sort()`或`Arrays.sort()`方法进行排序。 `compareTo()`方法的签名如下: ```java int compareTo(T o); ``` 这里,`T`是类型参数,表示与当前...

Global site tag (gtag.js) - Google Analytics