java中对类进行排序

java类排序(蓝桥杯必学)

我们知道c++中有时候需要对结构体进行一些排序

可以直接调用sort(数组,排序方法);

而java中有时候需要对类进行指定的排序~

前导知识:

数组:(不论是int,char,String类型的数组)都调用 Arrays . sort() 排序即可

结构体: 首先要将它存放在集合中,在对其进行排序,调用 Collections . sort()排序,此时需要重新构造排序方法(但是例如TreeMap , TreeSet , PriorityQueue,等自带排序的集合,需要在初始化时就对其进行排序重写 )

对应习题

方法如下:

类:

class person{

int age;

String name;

person(){}

person(int age,String name){

this.age=age;

this.name=name;

}

}

方法1:(这种lambda表达式只能支持,根据结构体中单独一个元素进行排序):

public class Solution{

public ArrayList merge(ArrayList persons){

ArrayList res=new ArrayList();

//排序方式:(根据类中年龄升序排序)

//解释:对persons(person类)变量进行排序,a与b是两个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:(针对不自带排序的集合进行排序重写):

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:(针对自带排序的结合进行排序重写)

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;

}

}

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月19日
下一篇 2022年6月19日

相关推荐

  • iPhone11只要1850元?群友:别买!这是ID机,有隐藏ID

    粉丝在某平台看到一台iPhone11 128GB,该机只要1850元。于是发到群里问大家是否值得入手。大家的回复出奇的一致,那就是不能买。因为从卖家的描述中就能看出,这台iPhon…

    2022年7月1日
  • 微信第二扣款顺序在哪设置(微信支付顺序设置方法)

    我们在使用微信支付的时候,经常遇到支付顺序的问题,就是扣款渠道的顺序,有零钱、银行卡等多种不同的支付扣款方式。 也许系统自动设置的或者以前设置的不符合现在的习惯,那么我们应该怎么去…

    2022年10月31日
  • JS精粹,原型链继承和构造函数继承的“毛病”

    先从面向对象讲起,本瓜认为:面向对象编程,它的最大能力就是:复用! 咱常说,面向对象三大特点,封装、继承、多态。 这三个特点,以“继承”为核心。封装成类,是为了继承,继承之后再各自…

    2022年6月13日
  • 快读《风声》:情报送出的方法,连鬼都想不到,到底谁是“老鬼”

    一九四一年日伪时期的杭州,汪伪政府的剿匪总队截获了一封由代号“老鬼”发出的重要密电。 大家好,今天给您带来的是麦家的作品《风声》。 东风 1937年的八月,日本鬼子把杭州城炸了个底…

    2022年8月14日
  • 魔灵召唤刷蓝水晶怎么快?符文经验稀有魔灵一样适用

    魔灵召唤里面蓝水晶这玩意缺的还是比较多,用处太多了,对于很多玩家而言这个都是要经常去刷的,那么用什么方法去刷比较快呢?下面就给大家分享下方法,不管是自己刷还是搬砖的都适合,可以一直…

    2022年8月8日
  • Matlab基础入门手册(第六章 符号运算)

    第六章 符号运算 1.53 符号对象 1.符号数值、变量和表达式的创建方法 2.认识函数 sym、syms 3.说明 符号数学工具箱 符号数学工具箱引入了一种特殊的数据类型 &#8…

    2022年6月19日
  • 剑与远征8月最新兑换码一览2022

    剑与远征8月最新兑换码有哪些?在哪里可以兑换?使用方法是什么?剑与远征是一款卡牌搭配的策略放置类游戏,画面风格非常的精美,在游戏中玩家可以使用不同的兑换码获取额外的资源奖励,很多玩…

    2022年7月26日
  • Python 字符串

    字符串在学习中难度不大,但字符串的‘方法’有很多,只有多用才能融会贯通。 这里写的是一些字符串的常用操作: 字符串是一种序列类型,可以通过for来遍历,也可以[ ] 来切片处理,但…

    2022年6月20日
  • 84消毒液的正确配比及方法注意事项!

    84消毒液该如何正确的进行配比?它的比例又是多少呢?大家一定要仔细根据文章内容的详细说明来进行兑比。 84消毒液是很多家庭必备的物品,尤其是疫情期间。今天小编来和大家说一说,84消…

    2022年8月13日
  • 班主任直言:写作文是有公式的,妈妈一定要告诉孩子!比如写游记、写

    班主任直言:写作文是有公式的,妈妈一定要告诉孩子!比如写游记、写景、写物、写事、写人等8大写作技巧,提高孩子的写作水平。家有孩子的赶紧收藏!没有笨孩子,只是没掌握好方法,没事让孩子…

    2022年9月18日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息