在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    java中對(duì)類進(jìn)行排序

    java類排序(藍(lán)橋杯必學(xué))

    我們知道c++中有時(shí)候需要對(duì)結(jié)構(gòu)體進(jìn)行一些排序

    可以直接調(diào)用sort(數(shù)組,排序方法);

    而java中有時(shí)候需要對(duì)類進(jìn)行指定的排序~

    前導(dǎo)知識(shí):

    數(shù)組:(不論是int,char,String類型的數(shù)組)都調(diào)用 Arrays . sort() 排序即可

    結(jié)構(gòu)體: 首先要將它存放在集合中,在對(duì)其進(jìn)行排序,調(diào)用 Collections . sort()排序,此時(shí)需要重新構(gòu)造排序方法(但是例如TreeMap , TreeSet , PriorityQueue,等自帶排序的集合,需要在初始化時(shí)就對(duì)其進(jìn)行排序重寫 )

    對(duì)應(yīng)習(xí)題

    方法如下:

    類:

    class person{

    int age;

    String name;

    person(){}

    person(int age,String name){

    this.age=age;

    this.name=name;

    }

    }

    方法1:(這種lambda表達(dá)式只能支持,根據(jù)結(jié)構(gòu)體中單獨(dú)一個(gè)元素進(jìn)行排序):

    public class Solution{

    public ArrayList merge(ArrayList persons){

    ArrayList res=new ArrayList();

    //排序方式:(根據(jù)類中年齡升序排序)

    //解釋:對(duì)persons(person類)變量進(jìn)行排序,a與b是兩個(gè)person類的變量,若a.age-b.age>0則a排在b前,否則b排在a前(升序)

    Collections.sort(persons,(a,b)->a.age-b.age);

    for(int i=0;i<persons.size();i++){

    res.add(persons.get(i));

    }

    return res;

    }

    }

    方法2:(針對(duì)不自帶排序的集合進(jìn)行排序重寫):

    public class Solution{

    public ArrayList merge(ArrayList persons){

    ArrayList res=new ArrayList();

    Collections.sort(res,new Comparator(){

    @Override

    public int compare(person p1,person p2){

    int r1=p1.age-p2.age;

    if(r1!=0)return r1;

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

    }

    });

    for(int i=0;i<persons.size();i++){

    res.add(persons.get(i));

    }

    return res;

    }

    }

    方法3:(針對(duì)自帶排序的結(jié)合進(jìn)行排序重寫)

    public class Solution{

    public TreeSet merge(TreeSet persons){

    TreeSet res=new TreeSet(new Comparator(){

    @override

    public int compare(person p1,person p2){

    int r1=p1.age-p2.age;

    if(r1!=0)return r1;

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

    }

    });

    for(int i=0;i<persons.size();i++){

    res.add(persons.get(i));

    }d

    return res;

    }

    }

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月19日 18:07
    下一篇 2022年6月19日 18:07

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息