当前位置:首页 » 编程语言 » java对list排序

java对list排序

发布时间: 2022-03-11 23:22:56

java 怎么将List里面数据排序

学生实体类,包含姓名和年龄属性,

比较时先按姓名升序排序,如果姓名相同则按年龄升序排序。

Ⅱ 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

Ⅲ JAVA中list排序问题

这是根据Collections.sort重载方法来实现 list比较排序
compare 方法返回int类型参数实现正序和倒序排列
那我们来分析一下这句
ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());
method m1 invoke方法中 将Object a强制转换为实体E类型 类型数组null 之后to成String 返回类型,与m2的invoke方法返回类型进行字符比较。 其结果返回的int类型 是compare 方法的返回类型。
Collections.sort将Sort方法中的参数list 进行排序,
ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString());
ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());
这两句返回参数理论上是相反的

不用为此纠结 这只是个实例 有不明白的 可以Hi我 ms_compound

Ⅳ Java的List怎么排序啊

问题在于

doubletemp=0.0;

你把temp设置成double型,然后

temp=arr.get(l).doubleValue();

所以你把取得的int类型转换成了double类型,最后输出就带上了.0


你仔细看看你的程序,int类型有的排序后没有变,有的变x.0了,凡是加上.0的都是它在排序过程中与double类型的数字进行过交换。

Ⅳ java如何对Arraylist数组进行排序(用comparable)

看代码:

importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.Collections;

publicclassDemo{

publicstaticvoidmain(String[]args)throwsException{
Pair[]pairs={
newPair(0,1),
newPair(2,9),
newPair(7,0),
newPair(8,8),
newPair(8,6),
newPair(9,2),
newPair(1,5),
newPair(8,2),
newPair(9,15),
newPair(9,5)
};
ArrayList<Pair>pairList=newArrayList<>(Arrays.asList(pairs));

System.out.println("排序前:");
System.out.println(Arrays.toString(pairs));
Arrays.sort(pairs);//对数组排序
System.out.println("排序后:");
System.out.println(Arrays.toString(pairs));

System.out.println("排序前:");
System.out.println(pairList);
Collections.sort(pairList);//对ArrayList排序
System.out.println("排序后:");
System.out.println(pairList);
}
}

//继承Comparable接口排序该类是“可排序的”
//<>里面的是排序时与当前实例进行比较的实例的类型
//一般都和当前实例是同一个类型,比如这里就是Pair的实例和Pair的实例比较
classPairimplementsComparable<Pair>{

publicintleft;
publicintright;

publicPair(intleft,intright){
this.left=left;
this.right=right;
}

@Override
publicStringtoString(){
return"["+left+","+right+"]";
}

//排序规则,先按left排序,再按right排序
@Override
publicintcompareTo(Pairthat){
if(this.left>that.left){
return1;
}elseif(this.left<that.left){
return-1;
}elseif(this.right>that.right){
return1;
}elseif(this.right<that.right){
return-1;
}
return0;
}

}

可以发现先按 left 排序,如果 left 相等,则按 right 排序

Ⅵ JAVA中list集合的排序

根据字符串的含义,进行对象化,比如,Student,有三个属性,序号,姓名,分数
注意重写Student的Compareable接口
然后,List<String>变成List<Student> students=new ArrayList<Student>
然后,遍历list,算出平均分,放入新的SortList<Student>
打印结果

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

Ⅷ java 中 List 怎么排序呢

Map<String, String> map =new HashMap<String, String>();
java.util.List<String> list=new ArrayList<String>();
map.put("a", "a");
map.put("c", "c");
map.put("b", "b");
list.addAll(map.keySet());
Collections.sort(list);
for (String key : list)
{
System.out.println(map.get(key));
}

直接Copy 到main方法中运行, 是个降序! 升序的话 Collections 这里面也有的。

楼主 太抠门, 5分都不给!

Ⅸ java中list排序

最好是在将日期插入list前排序,即在sql查询是排序,这样比较好处理。
另一种方法是构建一个比较类或比较方法,如一楼所述。

热点内容
谷歌视频缓存怎么提取 发布:2025-01-15 08:07:47 浏览:77
php多条件筛选 发布:2025-01-15 08:07:39 浏览:928
百度提问怎么上传图片 发布:2025-01-15 08:07:33 浏览:838
yy图片文件夹 发布:2025-01-15 08:01:00 浏览:842
可缓存影视 发布:2025-01-15 07:42:50 浏览:799
php函数默认值 发布:2025-01-15 07:34:31 浏览:238
编译应用后apk无法打开 发布:2025-01-15 07:33:45 浏览:438
lc脚本编辑器 发布:2025-01-15 07:18:59 浏览:529
追剧脚本 发布:2025-01-15 07:00:39 浏览:446
c语言字符串库函数 发布:2025-01-15 06:54:49 浏览:526