`
331008019
  • 浏览: 22235 次
  • 性别: Icon_minigender_1
  • 来自: 湖南株洲
社区版块
存档分类
最新评论

Java中的List按照元素的属性进行排序

    博客分类:
  • Java
阅读更多

主要用到: Collections.sort()方法:

 

1. JavaBean —— Content.java:

package com.hmw.listsort;

public class Content {

	private long key;

	private String name;

	public Content(long key, String name) {
		this.key = key;
		this.name = name;
	}

	public long getKey() {
		return key;
	}

	public void setKey(long key) {
		this.key = key;
	}

	public String getName() {
		return name;
	}

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

 

 

 

2. 进行比较的类 —— ContentComparator.java:

package com.hmw.listsort;

import java.util.Comparator;

public class ContentComparator implements Comparator<Content>{
	public int compare(Content o1, Content o2) {

		//将 null 排到最后
		if(o1 == null){
			return 1;
		}
		if(o2 == null || !(o2 instanceof Content)){
			return -1;
		}
		
		long key1 = o1.getKey();
		long key2 = o2.getKey();
		return key1 > key2 ? 1 : key1 < key2 ? -1 : 0;
		
		/*
		//如果想要按照 name 字段进行排序, 只需将最后三行代码改为下面这一行即可
		return o1.getName().compareTo(o2.getName());
		*/
		
	}
}

 

 

 

3. 测试类 —— Test Class —— CompareClient.java

package com.hmw.listsort;

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

public class CompareClient {
	public static void main(String[] args) {
		List<Content> list = new ArrayList<Content>();
		list.add(null);
		list.add(new Content(15000, "---15000--"));
		list.add(new Content(10000, "---10000---"));
		list.add(new Content(20000, "---20000---"));
		list.add(null);
		list.add(new Content(25000, "---25000---"));
		list.add(new Content(13000, "---13000---"));
		list.add(new Content(15000, "---15000---"));
		list.add(new Content(89000, "---89000---"));
		Collections.sort(list, new ContentComparator());
		
		/*
		//如果要按照降序排列再加上这一行代码即可
		Collections.reverse(list);
		*/
		
		for (Content content : list) {
			if (content == null) {
				System.out.println("null");
			} else {
				System.out.println("content.getName()\t" + content.getName());
			}
		}
	}
}

 

输出结果如下:

content.getName() ---10000---
content.getName() ---13000---
content.getName() ---15000--
content.getName() ---15000---
content.getName() ---20000---
content.getName() ---25000---
content.getName() ---89000---
null
null

分享到:
评论

相关推荐

    java版本List中对象多属性排序.rar

    在Java编程中,对List集合中的对象进行多属性排序是一项常见的任务。这通常涉及到自定义比较逻辑,以满足复杂的数据排序需求。在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在...

    java List 排序 Collections.sort

    当我们需要对List中的元素进行排序时,`Collections.sort()`方法就派上了用场。这个方法能够根据元素的自然顺序或者自定义的比较器进行排序。本文将深入探讨`Collections.sort()`的使用、原理以及如何自定义排序规则...

    java中进行集合排序

    这里的“集合”特指Java集合框架中的数据结构,而“排序”则是指对这些集合内的元素按照某种规则进行重新排列。 #### 描述:Java中按对象的某个属性进行升序降序的排序 这段描述进一步明确了排序的目标:即基于...

    Java对List多个排序、查询条件的处理

    在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...

    java 中List按照date排序的实现

    java 中List按照date排序的实现 Java 中List按照date排序的实现是Java开发中一个常见的需求,特别是在处理日期类型的数据时SORT。今天,我们将介绍如何使用Java中的Collections类和Comparator接口对List按照date...

    Java中对list元素进行排序的方法详解

    在Java编程中,对List元素进行排序是一项常见的操作,特别是在处理数据集合时。本文将详细介绍如何在Java中对List元素进行排序,包括两种主要的方法:使用Comparable接口和Comparator接口。 1. **使用Comparable...

    list集合树状排序-java

    在本场景中,我们需要对List中的对象进行排序,这些对象通常包含表示层级关系的属性,如父ID、子节点列表等。 接下来,我们要解决的是“树状排序”。树状排序,或称为树形排序,是指将具有树结构的数据进行排序。在...

    java 按对象属性排序

    在Java编程中,按对象属性排序是一个常见的需求,特别是在数据处理和数据分析的场景下。这里我们探讨的主题是如何根据对象的属性进行排序,结合提供的`Simple.java`和`User.java`文件,我们可以假设这是一个关于...

    Java 对象属性map排序示例

    **Java对象属性排序** 如果我们有一个对象类,其中包含一个Map属性,我们可以先对Map进行排序,然后再处理对象列表。假设我们有以下User类: ```java public class User { private String name; private Map, ...

    List 对象属性排序

    在Java编程中,经常需要对`List`集合中的对象按照特定属性进行排序。传统的方法是在每个实体类中重写`Comparable`接口或提供比较器(`Comparator`),这不仅增加了代码量,而且降低了代码的可维护性和复用性。为了...

    Java 中文排序 使用pinyin4j组件

    在Java编程语言中,对中文字符串进行排序是一个相对复杂的问题,因为中文字符的排序不能简单地按照Unicode编码顺序来处理。通常,我们需要考虑汉字的拼音或者笔画等属性来进行排序。这里我们将详细介绍如何使用`...

    java List排序demo

    当我们需要对`List`中的元素进行排序时,可以利用Java提供的内置排序机制。本篇将详细介绍如何根据指定字段对`List`中的对象进行排序,以`Student`类为例,假设每个`Student`都有一个`grad`属性表示成绩。 首先,...

    List中保存对象,按对象中某一属性排序【含程序源码】

    总结一下,这篇博客主要讲述了如何在Java中使用列表(List)存储对象,并按照对象的特定属性进行排序。通过实现`Comparable`接口或提供`Comparator`,我们可以轻松地对列表进行定制化排序,满足各种需求。这对于数据...

    如何实现java8 list按照元素的某个字段去重

    在Java编程中,有时我们需要处理列表(List)数据结构,并且在处理过程中,可能需要根据元素的特定字段去重。Java 8引入了Stream API,它提供了强大的数据处理能力,包括去重操作。本篇文章将详细讲解如何使用Java 8...

    List集合对象中按照不同属性大小排序的实例

    List集合对象中按照不同属性大小排序是java编程中的一种常见操作。下面我们就来详细介绍如何使用java的Collections.sort()方法对List集合对象按照不同属性大小排序。 首先,我们需要创建一个Person类,该类具有name...

    Python对List中的元素排序的方法

    首先定义一个compare函数: ...要求ListA中的元素有value这个属性才行,当然也可以把value换成ListA中的元素的其他共有属性也可以。感觉和Java差不多。 总结 以上所述是小编给大家介绍的Python对List中的元素排

    JAVA JDK8 List获取属性列表

    在 Java 中,获取 List 元素对象中某个属性的列表是一个非常常见的操作。从 JDK 1.8 开始,我们可以使用 Java 8 的 Stream API 来实现这个功能。本文将为大家分享如何使用 Java 8 的 Stream API 来获取 List 元素...

    Java对List对象进行排序_.docx

    在Java编程中,对List对象进行排序是一个常见的需求,尤其是在处理数据集合时。Java提供了一个便捷的方法`Collections.sort()`,可以直接对实现了`Comparable`接口的List进行排序。然而,当需要根据对象内部的某个...

Global site tag (gtag.js) - Google Analytics