对象按属性排序


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);
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值