`

对象按属性排序

    博客分类:
  • 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);
		}
	}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics