對ArrayList中的Person對象按照先年齡從大到小,相同年齡的再按照姓名(姓名是英文的)的字母順序進行排序.


ListDemo2.java
-----------------
package com.fs.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/*
 * Collections可以針對ArrayList存儲基本包裝類的元素排序,存儲自定義對象可不可以排序呢?
 */
public class Listdemo2 {
    public static void main(String[] args) {
        // 創建集合對象
        List<Person2> list = new ArrayList<Person2>();

        Person2 s1 = new Person2("Bobby",18);
        Person2 s2 = new Person2("Mike",20);
        Person2 s3 = new Person2("Jim",35);
        Person2 s4 = new Person2("Zoe",27);
        Person2 s5 = new Person2("Dave",18);
        Person2 s6 = new Person2("Madison",35);
        Person2 s7 = new Person2("Caden",40);
        Person2 s8 = new Person2("Ava",23);
        Person2 s9 = new Person2("Noah",25);
        Person2 s10 = new Person2("Isabella",27);
        Person2 s11 = new Person2("Lucas",25);
 
        // 添加元素對象
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);
        list.add(s6);
        list.add(s7);
        list.add(s8);
        list.add(s9);
        list.add(s10);
        list.add(s11);
 
        // 排序
        // 自然排序
        // Collections.sort(list);
        // 比較器排序
        // 如果同時有自然排序和比較器排序,以比較器排序為主
        Collections.sort(list, new Comparator<Person2>() {
            @Override
            public int compare(Person2 s1, Person2 s2) {
                  if(s1.getAge()-(s2.getAge())!=0){
                       return s1.getAge()-(s2.getAge());
                    }else{
                       return  s1.getName().compareTo(s2.getName());
                     }
            }
        });
 
        // 遍歷集合
        for (Person2 s : list) {
            System.out.println(s.getName() + "---" + s.getAge());
        }
    }
}

Person2,java
-------------------package com.fs.test;

public class Person2  {
    private String name;
    private int age;
 
    public Person2() {
        super();
    }
 
    public Person2(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 .定義一個學生類Student,包含三個屬性姓名、年齡、性別,創建三個學生對象存入ArrayList集合中。 跑步減肥 不同年齡要有不同配速 編寫Java程序,用於顯示人的姓名和年齡。 定義一個人類(Person),該類中應該有兩個私有屬性,姓名(name)和年齡(age)。定義構造方法,用來初始化數據成員。再定義顯示(display)方法,將姓名和年齡打印出來。 java -封裝一個類。(姓名、年齡、性別) (結構體)有結構體:學號、姓名、性別、年齡,要求鍵盤輸入5個學生的信息,以年齡對5個學生排序。 建立一個鏈表,每個結點包括:學號、姓名、性別、年齡 輸入一個年齡,如果鏈表中的結點所包含的年齡等於此年齡,則將此結點刪去 建立一個鏈表,每個結點包括:學號、姓名、性別、年齡。輸入一個年齡,如果鏈表中的結點所包含的年齡等於此年齡,則將此結點刪去 2017.4.20實驗三:2、定義一個包含學生學號、姓名、年齡和三門課成績的結構體,輸入10個學生信息,並按總成績由高到低的順序排序並輸出。 定義一個Person類,其中包括:1.定義屬性:姓名、年齡、民族作為成員變量。定義靜態成員變量:人數2.定義構造方法:對成員變量進行初始化。3.定義多個方法:分別顯示相應的屬性值,例如getName(){System.out.print("名稱="+name+";"); }4.定義一個方法“成長”:實現年齡的增加,每執行一次年齡增加1 題目:寫出一條SQL語句,查詢工資高於10000,且與他所在部門的經理年齡相同的職工姓名。
 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM