java如何对ArrayList中对象按照该对象某属性排序

如题所述

第1个回答  2013-11-01
if(!s1.name.equals(s2.name)){return s2.name.compareTo(s1.name);}else{//姓名也相同则按学号排序return s2.id-s1.id;}}}};Student stu1 = new Student (1,"zhangsan","male",28,"cs");Student stu2 = new Student (2,"lisi","female",19,"cs");Student stu3 = new Student (3,"wangwu","male",22,"cs");Student stu4 = new Student (4,"zhaoliu","female",17,"cs");Student stu5 = new Student (5,"jiaoming","male",22,"cs"); ArrayList List = new ArrayList();List.add(stu1);List.add(stu2);List.add(stu3);List.add(stu4);List.add(stu5);//这里就会自动根据规则进行排序Collections.sort(List,comparator);display(List);}static void display(ArrayList lst){for(Student s:lst)System.out.println(s);}} class Student{int age;int id;String gender;String name;String cs;Student(int id,String name,String gender,int age,String cs){this.age=age;this.name=name;this.gender=gender;this.id=id;return id+" "+name+" "+gender+" "+age+" "+cs;}} 2.添加 Comparable 接口,重写 compareTo 方法。然后你可以用 TreeSet 结构进行排序。它会自动排序。本回答被提问者采纳

java如何对ArrayList中对象按照该对象某属性排序
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class ComparableTest { public static void main(String[] args) { Comparator<Student> comparator = new Comparator<Student>(){ public int compare(Student s1, Student s2) { \/\/先排年龄 if(s1.age!

java arraylist 按照对象的属性排序
List中的元素是对象的话,若要按该List中元素的某个属性进行排序,那么应该重写里面元素的hashCode和equals方法,然后再排序。比如该问题要重写course的hashCode和equals方法

如何实现按照List集合中对象某个属性排序
给集合排序 ,常见的方法是给集合提供1个比较器Comparator.import java.util.*;class Stu{\/\/学生类String name;int age;public Stu(String name,int age) {this.name = name;this.age=age;}@Overridepublic String toString() {return "姓名:"+name+" 年龄:"+age;}}public class Test {public ...

JAVA如何根据List中对象的属性进行对象排序(江湖救急!)
public class SortList {private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd");public static void main(String[] args) {List<String> dates = new ArrayList<String>();dates.add("2014-10-02");dates.add("2013-12-01");dates.add("2014-11-02");dates.add("2014-01-...

java ArrayList 排序
结论:在Java中,ArrayList的排序可以通过实现Comparator接口来完成。以下是通过自定义Comparator类对BookBean对象进行日期排序的示例。在`com.test`包下的`BookBean`类中,定义了一个用于存储书籍信息的对象,包含书号(no),书名(name)和日期(date)。为了实现排序,我们创建了一个名为`MyComparator`的类,...

java如何让list按照list里面的某个字段排序,list里面的有很多字段!_百 ...
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;public class $ { public static void main(String[] args) { List<Map<String, Integer>> data = new ArrayList<Map<String, Inte...

java 怎么将List里面数据排序
第一点,由结果看出Collections.sort(arrayList1),是以String的ASCII码进行排序的,为了证明这一点,就要看原代码,这时你就会发现JDK中String的compareTo方法是个空实现,底层并不是用java写的,这点没事,我们可以用一定的方法让它把特征暴露出来,然后就可以理解思想。你看我下面写的小测试程序就会明白...

java如何打乱arraylist中的对象,一定不能重复啊!
然后将为SET变为ArrayList HashSet<String> set = new HashSet<String>();set.add("1");set.add("1");ArrayList<String> list = new ArrayList<String>();list.addAll(set);如上.你上面的代码,出现重复的原因是,你删除了一个元素,那么索引的值就变了,想插入回源来的位置,那就要减1....

java的list集合如何根据对象中的某个字段排序
下面的代码是根据学生年龄排序学生list 的一个例子:import java.util.ArrayList;import java.util.List;class Student {private String name;private int age;public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(...

java 中有城市类 存在arraylist 怎么让它按名字首字母排序
import java.util.ArrayList;import java.util.Comparator;public class ListDemo {public static void main(String[] args) {ArrayList<String> city = new ArrayList<String>();city.add("Jonesboro");city.add("Chaohu");city.add("LittleRock");city.add("bridgeport");city.add("Rome");city...

相似回答