java数据类型排序_对象排序的扩展(数字类按大小排,非数字类按数据字典排)...

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

public class ListSortTest {

/**

* @param args

* function:

* params :

* return :

*/

public static void main(String[] args) {

List list = new ArrayList();

list.add("131");

list.add("121");

list.add("124541");

list.add("151");

list.add("151a");

list.add("151b");

list.add("1");

list.add("1a");

list.add("11111");

System.out.println("********排序前************");

for (Object object : list) {

System.out.println(object.toString());

}

System.out.println("********第一次排序结果************");

Collections.sort(list);

for (Object object : list) {

System.out.println(object.toString());

}

System.out.println("********最终排序结果************");

sort(list);

for (Object object : list) {

System.out.println(object.toString());

}

}

public static List sort(List list){

for(int i = 0 ;i

for(int j = 1 ;j

int x = compare(list.get(j-1),list.get(j));

if(x == 1){

Object obj = null ;

obj = list.get(j-1);

list.set(j-1, list.get(j));

list.set(j, obj);

}

}

}

return list ;

}

public static  int compare(Object o1, Object o2) {

double a = 0.0;

double b = 0.0;

try {

a = Double.parseDouble(o1.toString());

b = Double.parseDouble(o2.toString());

} catch (Exception e) {

//System.out.println("类型转换错误!");

}

if(a!=0.0&&b!=0.0){

if(a>b)  return 1;

return -1 ;

}

return 0 ;

}

}

结果打印:

********排序前************

131

121

124541

151

151a

151b

1

1a

11111

********第一次排序结果************

1

11111

121

124541

131

151

151a

151b

1a

********最终排序结果************

1

121

131

151

11111

124541

151a

151b

1a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值