`

对象按属性排序

    博客分类:
  • JAVA
阅读更多
package com.yl.container;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class Preson implements Comparable<Preson>
{
	private Integer id;  //行
	
	private String name; //名字

	private Integer preifx; //号段

	public Integer getId() {
		return id;
	}

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

	public Integer getPreifx() {
		return preifx;
	}

	public void setPreifx(Integer preifx) {
		this.preifx = preifx;
	}

	public String getName() {
		return name;
	}

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

	public int compareTo(Preson op) 
	{
		if(this.getPreifx().compareTo(op.getPreifx())>0)
		{
			return 1;
		}
		if(this.getPreifx().compareTo(op.getPreifx())<0)
		{
			return -1;
		}
		if(this.getId().compareTo(op.getId())>0)
		{
			return 1;
		}
		if(this.getId().compareTo(op.getId())<0)
		{
			return -1;
		}
		return 0;
	}
	
	
	@SuppressWarnings("unchecked")
	public static void main(String[] args) 
	{
		List<Preson> list = new ArrayList<Preson>();
		
		Preson p1 = new Preson();
		Preson p2 = new Preson();
		Preson p3 = new Preson();
		Preson p4 = new Preson();
		Preson p5 = new Preson();
		Preson p6 = new Preson();
		Preson p7 = new Preson();
		Preson p8 = new Preson();
		Preson p9 = new Preson();
		Preson p10 = new Preson();
		
		//装数据
		p1.setId(new Integer(1));
		p1.setPreifx(new Integer(1881654));
		p1.setName("AAA");
		
		p2.setId(new Integer(2));
		p2.setPreifx(new Integer(1881154));
		p2.setName("BBB");
		
		p3.setId(new Integer(3));
		p3.setPreifx(new Integer(1882354));
		p3.setName("CCC");
		
		p4.setId(new Integer(4));
		p4.setPreifx(new Integer(1881624));
		p4.setName("DDD");
		
		p5.setId(new Integer(5));
		p5.setPreifx(new Integer(1881654));
		p5.setName("EEE");
		
		p5.setId(new Integer(6));
		p5.setPreifx(new Integer(1881654));
		p5.setName("FFF");
		
		p6.setId(new Integer(7));
		p6.setPreifx(new Integer(1881884));
		p6.setName("GGG");
		
		p7.setId(new Integer(8));
		p7.setPreifx(new Integer(1881884));
		p7.setName("HHH");
		
		p8.setId(new Integer(9));
		p8.setPreifx(new Integer(1881984));
		p8.setName("III");
		
		p9.setId(new Integer(10));
		p9.setPreifx(new Integer(1881624));
		p9.setName("JJJ");
		
		p10.setId(new Integer(11));
		p10.setPreifx(new Integer(1881624));
		p10.setName("KKK");
		
		//装对象
		list.add(p1);list.add(p2);list.add(p3);list.add(p4);list.add(p5);list.add(p6);list.add(p7);list.add(p8);list.add(p9);list.add(p10);
		//排序
		Collections.sort(list);
		
		for (int i = 0; i < list.size(); i++) 
		{
			Preson p = (Preson)list.get(i);
			System.out.println("按PREFIX和ID排序:第 "+(i+1)+" 个对象");
			System.out.println("行号:"+p.getId());
			System.out.println("名字:"+p.getName());
			System.out.println("号段:"+p.getPreifx());System.out.println();
		}
		
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		
		for (int i = 0; i < list.size(); i++) 
		{
			if((i+1)<list.size())
			{
				Preson pi1 = (Preson)list.get(i);
				Preson pi2 = (Preson)list.get(i+1);
				if(pi1.getPreifx().equals(pi2.getPreifx()))
				{
					String line = "号段:"+pi1.getPreifx()+",在第 "+pi1.getId()+" 行和第 "+pi2.getId()+"行重复!";
					map.put(pi1.getId(), line);
				}
			}
		}
		
		Set set = map.keySet();
		List<Integer> alist = new ArrayList<Integer>();
		for (Iterator s = set.iterator(); s.hasNext();) 
		{
			Integer is = (Integer) s.next();
			alist.add(is);
		}
		
		Collections.sort(alist);
		
		for (int j = 0; j < alist.size(); j++) 
		{
			Integer is = (Integer)alist.get(j);
			String line = map.get(is);
			System.out.println(line);
		}
	}
}

分享到:
评论

相关推荐

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

    本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和自定义比较器(Comparator)来完成的,对于复杂的数据排序需求具有很高的灵活性。...

    js对象属性排序

    本篇文章将深入探讨JavaScript对象属性排序的原理、方法以及注意事项。 首先,了解JavaScript对象的基本特性是至关重要的。在ECMAScript规范中,对象的属性访问速度并不依赖于属性的位置或顺序,因为它们内部是通过...

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

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

    java 按对象属性排序

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

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

    总结一下,当需要对Java对象数组按多个属性排序时,我们可以: 1. 实现`Comparator`接口并自定义`compare()`方法。 2. 使用lambda表达式或方法引用来创建`Comparator`实例,使代码更加简洁。 3. 对于数组,使用`...

    List集合按照对象中某个属性排序通用工具类(按对象中某属性排序)

    在开发中,我们可能会遇到,我们会根据不同情况对一个List集合进行排序操作,为了方便List集合根据对象中的某一个属性进行排序,开发了此工具类:

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

    这篇博客“List中保存对象,按对象中某一属性排序【含程序源码】”恰好提供了这样的解决方案。下面我们将深入探讨这个主题。 首先,让我们理解列表(List)和对象排序的基本概念。列表是Java集合框架的一部分,它允许...

    js对象数组按属性快速排序

    按所推荐的程序在IE下跑了下,的确,排序耗时很小。 代码如下: [removed] /* * 洗牌 */ function ... /* * 快速排序,按某个属性,或按“获取排序依据的函数”,来排序. * @method soryBy * @static * @

    List 对象属性排序

    ### List对象属性排序知识点 #### 一、概述 在Java编程中,经常需要对`List`集合中的对象按照特定属性进行排序。传统的方法是在每个实体类中重写`Comparable`接口或提供比较器(`Comparator`),这不仅增加了代码...

    Compable和Comparator自定义对象属性排序

    可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组

    Java实现储存对象并按对象某属性排序的几种方法示例

    以上三种方法都能满足按对象属性排序的需求,选择哪种取决于具体的应用场景。如果需要保持集合的有序性,`TreeSet`是很好的选择;如果数据存储在数组中,`Arrays.sort()`简洁高效;而`List`的使用者则可以利用`...

    Java 对象属性map排序示例

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

    JavaScript对象数组如何按指定属性和排序方向进行排序

    本文将详细讲解如何根据指定的属性和排序方向对JavaScript对象数组进行排序。 首先,了解JavaScript数组的`sort()`方法。`sort()`方法允许我们对数组元素进行原地排序,它接受一个可选的`compareFunction`参数,...

    JS实现json对象数组按对象属性排序操作示例

    在JavaScript中,我们经常需要处理JSON对象数组,并根据对象的某个属性进行排序。本文将详细介绍如何使用JavaScript的sort()方法对JSON对象数组进行排序,并给出具体的操作示例。 首先,我们需要理解JavaScript中的...

    根据对象属性将对象排序

    ### 根据对象属性将对象排序 在编程领域中,我们经常会遇到需要对一组对象进行排序的需求。这种排序可以基于单个属性或者多个属性来进行。本文档将详细讲解如何通过对象的一个或多个属性来实现对象的排序,并支持...

    基于ArrayList的对象多属性值排序

    在Java编程中,基于ArrayList的对象多属性值排序是一项常见的任务,尤其在处理数据集合时。ArrayList是Java集合框架的一部分,它提供了动态数组的功能,允许我们存储和操作对象数组。本主题将深入探讨如何对...

    (时间)排序函数、按某一属性排序

    本文将深入探讨时间排序函数以及如何按照对象数组中的特定属性进行排序。 首先,我们来理解“时间排序函数”。这个函数的主要目标是根据时间值对一组数据进行排序。在计算机科学中,时间通常表示为日期和时间戳,...

Global site tag (gtag.js) - Google Analytics