`
这些年
  • 浏览: 389893 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

实现list自动排序

    博客分类:
  • java
阅读更多

1:实现comparable<list中的对像>接口

例:public class DataObject implements Comparable<DataObject>, Serializable {

2:重写hashcode和equals方法,重写compareTo(要比软的对像,即list中的对像)方法

例:

/**
  * 因为要按倒序排列,所以大于返回-1,等于返回0,小于返回1
  */
 public int compareTo(DataObject otherData) {
  if (this == otherData)
   return 0;
  if (otherData == null)
   return -1;
  if (this.value > otherData.value) {
   return -1;
  } else if (this.value == otherData.value) {
   return 0;
  } else {
   return 1;
  }
 }

 3:使用Collections.sort(List<DataObject >对像);// 按倒序从大到小排列

 

第二种方式(可参考:http://www.iteye.com/topic/503812

import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

public class bbb {
	public static void main(String[] args) {

		Comparator<Person> comparator = new Comparator<Person>() {

			public int compare(Person o1, Person o2) {
				if (o1.getName() == o2.getName()) {
					return 0;
				}
				if (o1.getName() > o2.getName()) {
					return 1;
				}
				if (o1.getName() < o2.getName()) {
					return -1;
				}
				return 0;
			}

		};
        Set<Person> set = new TreeSet<Person>(comparator);
		Person p1 = new Person(1);
		Person p2 = new Person(2);
		Person p3 = new Person(3);
		Person p4 = new Person(4);
		Person p5 = new Person(5);
		Person p6 = new Person(6);
		set.add(p6);
		set.add(p3);
		set.add(p2);
		set.add(p5);
		set.add(p4);
		set.add(p1);
		for(Person p:set){
			System.out.println(p.getName());
		}
	}
}

class Person {
	public int name;

	public Person() {
	};

	public Person(int name) {
		this.name = name;
	}

	public int getName() {
		return name;
	}

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

}

 

分享到:
评论

相关推荐

    DataGridView点绑定List击列头排序

    DataGridView绑定table时可自动点击header排序,当绑定List集合就不能自动排序了,必须通过帮助类实现,这里有详细说明和例子。

    从n个数组中取出所有排列组合(Java实现)

    从n个数组中取出所有排列组合(Java实现)

    列表排序小程序

    实现列表自动排序,将LIST类封装为独立的类,简单易用

    Radmin自动登录器v3.0

    * 程序启动时,记录自动按记录名称升序排列;在记录窗格单击列表框某列表头,可以按该列进行记录排序,再次单击可以反向排序。 (2)、程序中的常用快捷键 * Enter :以默认模式连接记录; * Insert :新建记录;...

    List 去重的6种方法(contains、迭代、hashSet、treeSet、linkedHashSet、stream)

    此方法的实现代码较为简洁,但缺点是 HashSet 会自动排序,这样新集合的数据排序就和原集合不一致了 4:TreeSet去重(无序) 比较遗憾的是,TreeSet 虽然实现起来也比较简单,但它有着和 HashSet 一样的问题,会自动...

    Radmin自动登录器v3.0-多国语言绿色版-Release1-20150615

    * 程序启动时,记录自动按记录名称升序排列;在记录窗格单击列表框某列表头,可以按该列进行记录排序,再次单击可以反向排序。 (2)、程序中的常用快捷键 * Enter :以默认模式连接记录; * Insert :新建记录;...

    js实现时间轴自动排列效果

    效果图: 代码如下: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;timeline&lt;/title&gt;... list-style: none; } body{ font-fam

    unity3d-reorderable-list:Unity的列表控件,允许编辑器开发人员将可重新排序的列表控件添加到其GUI

    重新排序时,如果在滚动视图内,则自动滚动。 使用标记轻松自定义。 IList和SerializedProperty适配器。 订阅以添加/删除项目事件。 支持混合的项目高度。 逐项禁用拖动和/或移除。 插入插入(用于UnityEditor.Drag...

    Python代码实现删除一个list里面重复元素的方法

    方法一:是利用map的fromkeys来自动过滤重复值,map是基于hash的,大数组的时候应该会比排序快点吧 方法二:是用set(),set是定义集合的,无序,非重复 方法三:是排序后,倒着扫描,遇到已有的元素删之 #!/usr/bin/...

    VC程序开发之控件应用(2)

    实例056 自动调整组合框的宽度 95 实例057 颜色组合框 96 实例058 多列显示的组合框 98 ListControl控件典型实例 100 实例059 将数据库中的数据表添加到ListControl控件 101 实例060 利用ListControl控件...

    ESET nod32 ID自动获取工具【ESET_VC52_AUTOID】 V1.7.2.2

    5、增加ID发布页智能排列的功能(只限顺序读取),当排在前面的发布页无效时会把有效获取到ID的发布页排列到前面,在以后就会优先获取这个发布页。 1.7.1.4_x64更新:2009-11-07 1、修正内置ID发布页。 2、修正非...

    Android实现ListView的A-Z字母排序和过滤搜索功能 实现汉字转成拼音

    直入主题,今天给大家带来ListView的A-Z字母排序和过滤搜索功能并且实现汉字转成拼音的功能,我们知道一般我们对联系人,城市列表等实现A-Z的排序,因为联系人和城市列表我们可以直接从数据库中获取他的汉字拼音,而...

    安卓开发--Android连连看游戏源码(附赠参考实验报告).zip

    AbstractBoard的子类,实现矩形排列的方式,矩形排列的方块会填充二维数组的每个数组元素,只是把四周留空即可。 4. yinhe.board.impl.GameServiceImpl类: 游戏逻辑的实现类,实现GameService接口。 5. yinhe....

    集合anylist要进行筛选.pdf

    集合就如同数组,用来存储和管理一组特定类型的数据对象,除了基本的数据处理功能,集合直接提供了各种数据结构及算法的实现,如队列、链表、排序等,可以让你轻易地完成复杂的数据操作。在使用数组和集合时要先...

    Sortable-master.zip

    实现表格的拖动排序,自动生成排序后的序号。js原生实现表格行的拖动排序

    asp.net+ajax

    利用ReorderList控件实现拖拽排序;利用Rating控件实现评分功能;利用Accordion控件实现QQ样式的菜单。 第6章 注册登录。 第8章 留言本。 第9章 分页模块。 第10章 文件上传显示进度条功能。 第11章 相册模块。 第12...

    ESET_VC52_AUTOID精锐id自动获取器(绝对能用!)

    5、增加ID发布页智能排列的功能(只限顺序读取),当排在前面的发布页无效时会把有效获取到ID的发布页排列到前面,在以后就会优先获取这个发布页。 1.7.1.4_x64更新:2009-11-07 1、修正内置ID发布页。 2、修正非...

    FreeBSD操作系统设计与实现

    6.3.2 磁盘I/O请求的排序 6.3.3 磁盘标签 6.4 描述符的管理和服务 6.4.1 打开文件项 6.4.2 管理描述符 6.4.3 异步I/O 6.4.4 文件描述符的上锁机制 6.4.5 描述符上的多路I/O操作 6.4.6 select调用的实现 6.4.7 数据...

    基于Python的Sqlite3助手类库,采用连贯操作实现数据库的CURD功能+源代码+文档说明

    order | 用于对结果排序 | str、list、dict 具体连贯操作方法的使用在后续章节中将详细介绍说明。 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,...

    ESET nod32 ID自动获取工具【ESET_VC52_AUTOID】 V1.7.2.1

    5、增加ID发布页智能排列的功能(只限顺序读取),当排在前面的发布页无效时会把有效获取到ID的发布页排列到前面,在以后就会优先获取这个发布页。 1.7.1.4_x64更新:2009-11-07 1、修正内置ID发布页。 2、修正非...

Global site tag (gtag.js) - Google Analytics