java list 排序

2025-06-03 16:10:58

1、pojo类:public clas衡痕贤伎s ApexDictionary(){private String value;private Big肛舀辨乔Decimal dictionaryOrder; private String getValue(){return value;}private void setValue(String value){this.value = value;}public BigDecimal getDictionaryOrder() {return dictionaryOrder;}public void setDictionaryOrder(BigDecimal dictionaryOrder) {this.dictionaryOrder = dictionaryOrder;}}pojo类根据自己实际情况进行定义。

java list 排序

2、设置数据:例如我们是从数据库中查询出来的结果设置进去,如果数据不是按某个顺序放进去的话,当我们想换这个顺序取出来时就有些困难了。所以我们需要对这个结果排序。

3、取出来的数据是list.那么我们利用collections.sort()方法来排下序吧。List<Object> list = getList();Collections.sort(list, new Comparator<Object>() {public int compare(Object a, Object b) {//处理。。。return 0;}}

java list 排序

4、看到上面的图片,再说一下int与BigDecimal如何互相转换。1)int 转换为BigDecimal:int a = 1;BigDecimalb = new BigDecimal(a);2)BigDecimal转换为int:BigDecimal b = new BigDecimal(123.456);int a = b.intValue();//此时a的值为123

java list 排序
java list 排序

5、下面说一个比较通过的Java list 排序方法。缺点就是需要知道要比较的对象的类型有哪些。

java list 排序

6、public void sort(雉搽妤粲List<E> list, final String method, final String sort) 撑俯擂摔{if (list != null) {Collections.sort(list, new Comparator<Object>() {public int compare(Object a, Object b) {int result = 0;try {Method m1 = a.getClass().getMethod(method, null);Method m2 = b.getClass().getMethod(method, null);Object obj1 = m1.invoke(a, null);Object obj2 = m2.invoke(b, null);if(obj1 instanceof Integer){if (sort != null && "desc".equals(sort))// 倒序result= new Integer((int) obj2).compareTo( new Integer((int) obj1));else// 正序result= new Integer((int) obj1).compareTo(new Integer((int) obj2));}else if( obj1 instanceof Date){if (sort != null && "desc".equals(sort))// 倒序result= ((Date) obj2).compareTo((Date) obj1);else// 正序result= ((Date) obj1).compareTo((Date) obj2);}else{if (sort != null && "desc".equals(sort))// 倒序result= obj2.toString().compareTo(obj1.toString());else// 正序result= obj1.toString().compareTo(obj2.toString());}} catch (Exception e) {e.printStackTrace();}return result;}});}}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢