javalist排序对象
1. java里面List排序
摘自:http://www.blogjava.net/zygcs/archive/2008/01/17/176032.html
//一个POJO例子
class User {
String name;
String age;
public User(String name,String age){
this.name=name;
this.age=age;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//具体的比较类,实现Comparator接口
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
User user0=(User)arg0;
User user1=(User)arg1;
//首先比较年龄,如果年龄相同,则比较名字
int flag=user0.getAge().compareTo(user1.getAge());
if(flag==0){
return user0.getName().compareTo(user1.getName());
}else{
return flag;
}
}
}
//测试类
public class SortTest {
public static void main(String[] args){
List userlist=new ArrayList();
userlist.add(new User("dd","4"));
userlist.add(new User("aa","1"));
userlist.add(new User("ee","5"));
userlist.add(new User("bb","2"));
userlist.add(new User("ff","5"));
userlist.add(new User("cc","3"));
userlist.add(new User("gg","6"));
ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);
for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge()+","+user_temp.getName());
}
}
}
//首先年龄排序,如果年龄相同,则按名字排序
结果:
1, aa
2, bb
3, cc
4, dd
5, ee //注意:同样是5岁的人,则比较名字(ee,ff),然后排序
5, ff
6, gg
2. java中两个list集合如何排序
将两个list合并
List<Article> list1 = new ArrayList<Article>();
List<Article> list2 = new ArrayList<Article>();
list1.addAll(list2);
Collections.sort(list,new ReverseSort());
//自定义反向排序比较器
class ReverseSort implements Comparator{
public int compare(Object obj1,Object obj2) {
Article user1 = (Article)obj1;
Article user2 = (Article)obj2;
return -user1.gxrq.compareTo(user2.gxrq);
}
}
3. java 怎么将List里面数据排序
学生实体类,包含姓名和年龄属性,
比较时先按姓名升序排序,如果姓名相同则按年龄升序排序。
4. java List<T>排序
一、首先你的SpecialArticle类要实现 java.util.Comparator接口,在public int compare(Object o1, Object o2) 方法中对比两个SpecialArticle的sort属性的大小,第一个的大就返回1,第二个的大就返回-1,一样大就返回0;二、然后使用java.util.Arrays的sort方法来替List集合排序:java.util.Arrays.sort(sa);。
5. Java的List怎么排序啊
问题在于
doubletemp=0.0;
你把temp设置成double型,然后
temp=arr.get(l).doubleValue();
所以你把取得的int类型转换成了double类型,最后输出就带上了.0
你仔细看看你的程序,int类型有的排序后没有变,有的变x.0了,凡是加上.0的都是它在排序过程中与double类型的数字进行过交换。
6. java的list集合如何根据对象中的某个字段排序
下面的代码是根据学生年龄排序学生list 的一个例子:
importjava.util.ArrayList;
importjava.util.List;
classStudent{
privateStringname;
privateintage;
publicStudent(Stringname,intage){
this.name=name;
this.age=age;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
@Override
publicStringtoString(){
return"Perosn[name="+name+",age="+age+"]";
}
}
publicclassApp{
publicstaticvoidmain(String[]args){
List<Student>students=newArrayList<>();
students.add(newStudent("abc",12));
students.add(newStudent("bcd",20));
students.add(newStudent("cde",17));
students.add(newStudent("def",25));
students.add(newStudent("efg",15));
students.sort((x,y)->Integer.compare(x.getAge(),y.getAge()));
for(Studentstu:students){
System.out.println(stu);
}
}
}
运行结果: