`

list类型自动排序

    博客分类:
  • Java
阅读更多

我们在List里存入一些对象,比如person对象,若想要让这些对象按他们的age属性大小排序,不用我们自己实现,java已经帮我们实现了,我们只要实现Comparator接口,重写其中的compare方法就好~

下面是实现的代码:


person.java


public class Person {
	String name;
	int age;
	
	public Person(String name, int age){
		this.name = name;
		this.age = age;
	}

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

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
}

 

MyComparetor.java (实现 java 的Comparetor接口)


import java.util.Comparator;

public class MyComparetor implements Comparator {
//   按年龄排序
//	public int compare(Object o1, Object o2){
//	     Person p1=(Person)o1;
//	     Person p2=(Person)o2;
//	     return (p2.getAge()-p1.getAge());
//	    }


//  按姓名排序	
	public int compare(Object o1, Object o2){
	     Person p1=(Person)o1;
	     Person p2=(Person)o2;
	     return (p1.getName().compareTo(p2.getName()));
	    }
	
}

 

上面的compare方法会返回3种值, -1,0,1. 当第一个大于第二个的时候返回1,相等返回0,小于返回-1

按姓名排序中,用p1compareto p2是升序,反之是降序


测试类:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		List list=new ArrayList();
		list.add(new Person("weichao",22));
		list.add(new Person("lb",20));
		list.add(new Person("sf",18));
		list.add(new Person("wj",30));
		Collections.sort(list,new MyComparetor());
		Person person = null;
		for(int i = 0; i < list.size(); i++){
			person = (Person) list.get(i);
			System.out.println("name:" + person.getName() + ",age:" + person.getAge());
		}
	}

 

by NN    2009-9-29

分享到:
评论

相关推荐

    Java将2个List集合合并到一个List里面并排序工具类

    此方法用于将两个已经根据时间顺序排列的List合并成一个新的单一List,并进行排序。 2、该类设计有泛型,任何类型的集合List都可以调用该类。 3、使用者可以通过调用`ListMerger.mergeAndSortLists()`方法,传入两...

    c#使用bindlist绑定datagridview不能自动排序的解决类

    ### C# 使用 `BindableList` 绑定 `DataGridView` 无法自动排序的解决方案 #### 概述 在C#开发中,使用`DataGridView`控件展示数据是非常常见的做法。为了提高开发效率,我们通常会使用`BindingList&lt;T&gt;`来绑定数据...

    Android自动换行List 的 Demo

    它允许开发者将任意类型的View放入一个列表中,并且在横向排列时,当内容超出屏幕宽度时,会自动换行到下一行,以此来实现类似网格布局的效果,但更加灵活。 在Android中,这种功能通常可以通过自定义布局管理器...

    DataGridView点绑定List击列头排序

    标题“DataGridView点绑定List击列头排序”指的是在`DataGridView`中绑定`List&lt;T&gt;`类型的数据,并实现点击列头进行自动排序的功能。由于默认情况下,`DataGridView`仅在绑定到支持排序的数据源(如`DataTable`或SQL...

    Bamboy自动换行List

    "Bamboy自动换行List"是一种特殊的布局管理器,它允许开发者将任意类型的View组件(如按钮、文本视图、图片视图等)横向排列,并在内容超出屏幕边界时自动换行至下一行,类似于网格布局或者流式布局。这种布局方式在...

    CSharp_List.zip_C# list_C#中list_C#中list的用法_C#怎么引用List_c# list

    创建`List&lt;T&gt;`对象时,我们需要指定T的类型,即存储的数据类型。例如,创建一个存储整数的列表: ```csharp List&lt;int&gt; numbers = new List(); ``` 或者初始化时直接添加元素: ```csharp List&lt;int&gt; numbers = new...

    Alist安装包+快速启动-停止脚本.zip

    6. **文件管理和列表展示**: Alist 的核心功能可能包括对用户文件的组织、搜索、排序和显示。这可能涉及到文件系统的操作,如读取、写入和遍历目录结构,以及使用数据结构(如列表或表格)来可视化文件信息。 7. **...

    可以自动排序的CListCtrl

    这个教程我们将深入探讨如何实现一个“可以自动排序的CListCtrl”。 首先,我们要理解`CListCtrl`的基本用法。`CListCtrl`是MFC中的一个类,它封装了Windows API中的`LVITEM`结构和`ListView`控件。我们可以通过...

    C#实体类和实体类集合的自动排序

    本文将深入探讨如何在C#中实现实体类和实体类集合的自动排序,以及如何将它们绑定到控件如DataGridView以支持排序功能。 首先,让我们了解什么是实体类。实体类是代表数据库表或服务API中的一个记录的类。它通常...

    点击列头能排序的ListCtrl源代码

    在给定的"点击列头能排序的ListCtrl源代码"中,我们可以看到一个增强版的CListCtrl,名为CSortListCtrl,它扩展了基本的CListCtrl功能,实现了点击列头进行自动排序的功能,同时还添加了排序状态的图标,增强了用户...

    DataSet 转化为List的通用方法

    本文将详细介绍一种通用方法,用于将`DataSet`对象转化为`List`,并实现自动类型转换,提高代码的复用性和开发效率。 #### 一、`DataSet`与`List`简介 - **DataSet**:是.NET框架中用于存储从数据库中检索的数据的...

    VC 中的一个用于ListCtrl表头排序功能基类.rar

    2. **排序算法**:基类内部会实现一个排序算法,如快速排序、冒泡排序或选择排序,根据数据类型和数量选择合适的算法。排序算法会根据列头的点击顺序和排序标志(升序或降序)对ListCtrl中的项进行重新排列。 3. **...

    List对象排序通用方法

    ### List对象排序通用方法 ...该方法不仅支持任意类型的`List`,还能够根据传入的属性名自动识别需要排序的属性。这大大提高了代码的复用性和灵活性,同时也简化了对`List`对象的排序操作,有助于提高系统的整体性能。

    具有排序功能的list control

    而"具有排序功能的list control"则是对`CListCtrl`的扩展,它增加了点击列表头进行自动排序的功能。 标题中的“具有排序功能的list control”指的是一个自定义的`CListCtrl`派生类,例如`MyListCtrl`,该类通过重写...

    网页点击表头自动排序

    ### 知识点:网页点击表头实现自动排序 #### 一、背景介绍 在Web开发中,数据展示经常需要通过表格的形式呈现给用户。为了提高用户体验,通常会在表格上添加排序功能,使得用户可以通过点击表头来对表格中的数据...

    Python-Python排序容器类型SortedListSortedDict和SortedSet

    SortedList是Python中的一个有序列表,它扩展了Python的内置list类型,提供了额外的排序功能。SortedList会自动保持其元素的排序状态,无论是插入新元素还是删除现有元素,它都会立即进行调整。这在需要频繁地对列表...

    C#对控件进行排序

    在C#中,我们可以使用`Array`或`List&lt;T&gt;`等数据结构来辅助实现控件的排序。以下是一种常见的方法: 1. 将`Panel`的`Controls`集合转换为`List&lt;Control&gt;`。这可以通过`Controls.Cast().ToList()`完成,这样我们就...

    Dui list排序

    在Duilib中,"DuiList" 是一种常见的控件类型,用于展示可排序的数据列表。本篇文章将详细探讨DuiList的排序功能及其相关知识。 首先,我们要理解DuiList的基本概念。DuiList通常用于显示一系列具有相同结构的项目...

    C#重要知识之——泛型列表List例子

    3. 排序:`List&lt;T&gt;`提供`Sort()`方法,对于实现了`IComparable&lt;T&gt;`接口的类型,可以直接排序。若需要自定义排序规则,可以传递一个比较器`Comparison&lt;T&gt;`或`IComparer&lt;T&gt;`实例。 4. 分割与合并:`List&lt;T&gt;.Split()`...

    wxpython控件之Listctrl

    参数`list`应为列表类型。 2. **Focus(self, idx)** - 将指定索引的项设为焦点并显示。 3. **GetFirstSelected(self, *args)** - 获取第一个被选中的项的索引。如果没有选中任何项,则返回-1。 4. **GetFocusedItem...

Global site tag (gtag.js) - Google Analytics