zoukankan      html  css  js  c++  java
  • java的list集合如何根据对象中的某个字段排序?

    转自:http://blog.csdn.net/wangjuan_01/article/details/51351633

    List集合按某个字段排序

    1. package wjtest_01;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.Collections;  
    5. import java.util.Comparator;  
    6. import java.util.List;  
    7.   
    8. public class ListSort<E> {  
    9.     @SuppressWarnings("unchecked")  
    10.     public static void main(String[] args) {  
    11.   
    12.         List<Student> list = new ArrayList<Student>();  
    13.   
    14.         // 创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中  
    15.         Student s1 = new Student();  
    16.         s1.setAge(20);  
    17.         s1.setUsable(true);  
    18.         Student s2 = new Student();  
    19.         s2.setAge(19);  
    20.         s2.setUsable(true);  
    21.         Student s3 = new Student();  
    22.         s3.setAge(21);  
    23.         s3.setUsable(false);  
    24.         list.add(s1);  
    25.         list.add(s2);  
    26.         list.add(s3);  
    27.   
    28.         System.out.println("排序前:" + list);  
    29.         Collections.sort(list, new Comparator<Student>() {  
    30.   
    31.             @Override  
    32.             public int compare(Student o1, Student o2) {  
    33.                 // 按照学生的年龄进行升序排列  
    34.                 if (o1.getAge() > o2.getAge()) {  
    35.                     return 1;  
    36.                 }  
    37.                 if (o1.getAge() == o2.getAge()) {  
    38.                     return 0;  
    39.                 }  
    40.                 return -1;  
    41.             }  
    42.         });  
    43.   
    44.         System.out.println("升序排序后:" + list);  
    45.   
    46.         Collections.sort(list, new Comparator<Student>() {  
    47.   
    48.             public int compare(Student o1, Student o2) {  
    49.   
    50.                 // 按照学生的年龄进行降序排列  
    51.                 if (o1.getAge() > o2.getAge()) {  
    52.                     return -1;  
    53.                 }  
    54.                 if (o1.getAge() == o2.getAge()) {  
    55.                     return 0;  
    56.                 }  
    57.                 return 1;  
    58.             }  
    59.         });  
    60.   
    61.         System.out.println("降序排序后:" + list);  
    62.   
    63.         Boolean b1 = true; // 创建Boolean对象1  
    64.   
    65.         Boolean b2 = false; // 创建Boolean对象0  
    66.   
    67.         Boolean b3 = true; // 创建Boolean对象1  
    68.         System.out.println(b1);  
    69.   
    70.         int i;  
    71.   
    72.         i = b1.compareTo(b2); // b1和b2进行比较    
    73.   
    74.         System.out.println(i);//1-0   
    75.   
    76.         i = b2.compareTo(b1); // b2和b1进行比较  
    77.   
    78.         System.out.println(i);//0-1  
    79.   
    80.         i = b1.compareTo(b3); // b1和b3进行比较  
    81.   
    82.         System.out.println(i);//1-1  
    83.     }  
    84. }  
    85.   
    86. class Student{    
    87.       
    88.     private int age;  
    89.       
    90.     private Boolean isUsable;  
    91.   
    92.     public int getAge() {    
    93.         return age;    
    94.     }    
    95.     
    96.     public Boolean isUsable() {  
    97.         return isUsable;  
    98.     }  
    99.   
    100.     public void setUsable(Boolean isUsable) {  
    101.         this.isUsable = isUsable;  
    102.     }  
    103.   
    104.     public void setAge(int age) {    
    105.         this.age = age;    
    106.     }    
    107.     @Override    
    108.     public String toString() {    
    109.         return getAge()+"";    
    110.     }    
    111. }  
  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/YuyuanNo1/p/8038132.html
Copyright © 2011-2022 走看看