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);
}
}
}
運行結果: