社区
Java SE
帖子详情
求关于List排序的一个方法!
GUN_JACK
2005-11-19 11:49:36
请教各位高手?
List中add了一些类型相同的POJO类
我想根据POJO类中的一个属性对List进行排序
请问如何才能实现?
...全文
378
10
打赏
收藏
求关于List排序的一个方法!
请教各位高手? List中add了一些类型相同的POJO类 我想根据POJO类中的一个属性对List进行排序 请问如何才能实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mking2008
2005-11-20
打赏
举报
回复
try{
Collections.sort(mylist, new BB("aa", "aa"));
}catch(ClassCastException e){
e.printStackTrace();
}
inexplicable
2005-11-19
打赏
举报
回复
恩,楼上是提出的是一个好方法,大多数简单对象都能解决了,
但如果你的对象比较复杂,又或者你有多种排序的准则,
只通过POJO implements Comparable可能有点不够灵活。
另一个解决方法是实现一个Comparator, 比如
POJOComparator, 完成compare, equals两个方法。
通过 Collections.sort(List list, Comparator comp);
来实现排序。
kingofhawks
2005-11-19
打赏
举报
回复
Collections.sort(List list)可以排序,不过前提是你的List中的元素必须实现Comparable接口.所以你只要把你的POJO类实现该接口对其中的那个属性进行比较就可以了,如果是简单属性应该是很容易的.
ukulele8656
2005-11-19
打赏
举报
回复
学习
gz
crazycy
2005-11-19
打赏
举报
回复
javadoc中的解释:
ClassCastException - if the list contains elements that are not mutually comparable (for example, strings and integers).
呵呵;
crazycy
2005-11-19
打赏
举报
回复
首先 重写compare 同时也需要重写equals 和 hashcode方法
GUN_JACK
2005-11-19
打赏
举报
回复
错误信息:
java.lang.ClassCastException
at java.util.Arrays.mergeSort(Arrays.java:1152)
at java.util.Arrays.sort(Arrays.java:1079)
at java.util.Collections.sort(Collections.java:113)
at AAA.main(AAA.java:20)
GUN_JACK
2005-11-19
打赏
举报
回复
我试着写了一下:
import java.util.*;
public class AAA
{
public static void main(String[] args)
{ List mylist=new ArrayList();
BB aa=new BB("dd","aa");
mylist.add(aa);
BB bb=new BB("cc","bb");
mylist.add(bb);
BB cc=new BB("bb","cc");
mylist.add(cc);
BB dd=new BB("aa","dd");
mylist.add(dd);
System.out.println(((BB)mylist.get(0)).getAa());
System.out.println(((BB)mylist.get(1)).getAa());
System.out.println(((BB)mylist.get(2)).getAa());
System.out.println(((BB)mylist.get(3)).getAa());
try{
Collections.sort(mylist);
}catch(ClassCastException e){
e.printStackTrace();
}
System.out.println(((BB)mylist.get(0)).getAa());
System.out.println(((BB)mylist.get(1)).getAa());
System.out.println(((BB)mylist.get(2)).getAa());
System.out.println(((BB)mylist.get(3)).getAa());
}
}
class BB implements Comparator
{
private String aa;
private String bb;
public BB(String aa,String bb){
this.aa=aa;
this.bb=bb;
}
public void setAa(String aa){
this.aa=aa;
}
public String getAa(){
return aa;
}
public void setBb(String bb){
this.bb=bb;
}
public String getBb(){
return bb;
}
public int compare(Object element1, Object element2) {
String lower1 =
((BB)element1).getAa().toString().toLowerCase();
String lower2 =
((BB)element2).getAa().toString().toLowerCase();
return lower1.compareTo(lower2);
}
}
到sort的时候报错,不知道是为什么@_@ 请高手指点一下~~~~
yeyu710
2005-11-19
打赏
举报
回复
呵呵,也谢了楼上的两位了,我也知道该怎么给list排序了。(前几天因为需要要给list排序,搞了半天,反而越搞越乱了, 今天看了两楼上的话,明白了!在谢了!)
左大神在这
2005-11-19
打赏
举报
回复
学到很多,楼上各位都是用hibernate开发的吗,顺便问问大家,pojo是不是只有在hibernate中有呢,我会hibernate,希望给于指点
Java中
List
排序
的3种
方法
!
作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)在某些特殊的场景下,我们需要在 Java 程序中对
List
集合进行
排序
操...
两个
List
对比
排序
问题。
一个
List
根据另外
一个
List
元素顺序进行
排序
一个
List
根据另外
一个
List
元素顺序进行
排序
前些时候遇到这样的需
求
。没有找到直接对比
排序
的
方法
,但是我们可以另辟蹊径,换一种思路来解决。不对
List
2进行
排序
,但是我们可以让子集合与母集合取交集,通过API对比...
list
排序
的几种
方法
List
<Integer>
list
= new Array
List
<>();
list
.add(3);
list
.add(5);
list
.add(1); Collections工具类,升序排: Collections.sort(
list
); System.out.println(
list
); Console: [1, 3, 5] ...
list
排序
方法
汇总
java对
list
排序
的几种
方法
使用Collections.sort进行简单
排序
List
<Integer>
list
= new Array
List
<>();
list
.add(13);
list
.add(22);
list
.add(3);
list
.add(9);
list
.add(25); Collections.s
根据
List
里对象的某个属性值来对
List
排序
有
一个
场景,就是
一个
有
list
,
list
里面放的是Card对象,Card对象有多个属性值,包括卡用户信息、卡类型cardType,这个
list
是查询用户卡包得到的卡列表。卡的类型有普卡、金卡、钻卡,等级由低到高
排序
分别是:普卡、...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章