第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過在內(nèi)部類中實現(xiàn) Comparable 來提供多種排序選項

通過在內(nèi)部類中實現(xiàn) Comparable 來提供多種排序選項

一只斗牛犬 2023-09-27 10:24:11
我有一個人員對象的數(shù)組列表,每個對象都有名字、姓氏和年齡。我想使用內(nèi)部類提供一種按名字對這些對象進行排序的方法。我如何訪問內(nèi)部類中重寫的compareTo方法?我想使用內(nèi)部類,因為一旦按名字排序起作用,我將創(chuàng)建內(nèi)部類以按其他屬性排序。package listdemo;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class ListDemo {    public static void main(String[] args) {        List<Person> people = new ArrayList<>();        people.add(new Person("Homer", "Simpson", 29));        people.add(new Person("Mo", "Sizlak", 23));        people.add(new Person("Bart", "Simpson", 22));        people.add(new Person("Peter", "Griffin", 30));        people.add(new Person("Joe", "Swanson", 27));    }}package listdemo;public class Person {    private String firstName;    private String lastName;    private int age;    public Person(String firstName, String lastName, int age) {        this.firstName = firstName;        this.lastName = lastName;        this.age = age;        //create an instance of the inner class upon initialization of Person        Person.CompareFirstName compareFirstName = this.new CompareFirstName();    }    public String getFirstName() {        return firstName;    }    public void setFirstName(String firstName) {        this.firstName = firstName;    }    public String getLastName() {        return lastName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return this.firstName + " " + this.lastName + " " +  this.age;    }    class CompareFirstName implements Comparable<Person> {        @Override        public int compareTo(Person comparePerson) {            System.out.println("inner class compareTo method invoked");            int difference = Person.this.firstName.compareTo(comparePerson.getFirstName());            return difference;        }    }}
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

類比較名字


class compareFirstName implements Comparator<Person>{

@override

public int compareTo(Person p1,Person p2){

return p1.getFirstName().compareTo(p2.getFirstName());

}

}

在您的主要方法上創(chuàng)建上述類的實例并使用 Collections 類進行排序


compareFirstName c = new compareFirstName ();

List<Person> yourPersonList = new ArrayList<>();

.........................

Collections.sort(yourPersonList, c);

for(Person p : yourPersonList) {

  System.out.println(p.getFirstName()+","+p.getLastName()+","+p.getAge());

}


查看完整回答
反對 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號