首页 > 编程知识 正文

python排序sort,sort函数排序规则

时间:2023-05-05 18:25:21 阅读:18763 作者:459

我们知道集合Set可以存储一系列对象,如int和class,它们是无序的、不可重复的。 今天是Set可不可以排序,怎样自定义排序规则

首先,窃取说明Set继承关系的图:

今天主要讨论SortedSet的使用方法。

(注意:上图是借口,需要使用它们的实现类)

让我们实现SortedSet的排序。

公共类测试{ publicstaticvoidmain (字符串[ ] args ) ) treesetstringset=newtreesetstring ); set.add(b ); set.add(d ); set.add(a ); set.add(e ); set.add(c ); system.out.println(set ); }结果是什么,[A,b,c,d,E]。

按照字母顺序排列。 那么,如果想让我对叙利亚进行排序,就必须在这里自定义排序规则。

//此时TreeSet的构建方法之一//comparator :这就是自定义排序规则publictreeset(comparator? superecomparator(this ) new treemap (comparator ); }接下来测试一下吧;

public class test { publicstaticvoidmain (字符串[ ] args ) { //new个自定义comparatortreesetstringset=newtreesetstring ) newmmew set.add(d ); set.add(a ); set.add(e ); set.add(c ); system.out.println(set ); } classmycomparatorimplementscomparator { @ overridepublicintcompare (objecto 1,Object o2 ) stringS1=(string ) O1; stringS2=(string ) o2; //逆序returnS2.comPareto(S1 ); }结果与明确: [E、d、c、b、A]

这是非常简单的事情。 如果我们使用自定义class,例如Person类,它要求我们按age进行排序。 让我们看看如何实现:

公共类测试{ publicstaticvoidmain (字符串[ ] args )//自定义排序规则treesetpersonset=newtreesetperson ) newmycomparator ) set.add(newPerson ) ' d ',10 ); set.add(newPerson ) ' e ',40 ); set.add (新人员) ' c ',50 ); set.add (新人员) ' b ',30 ); system.out.println(set ); }}class Person{ String name; int age; 公共人员(字符串名称,int age ) { this.name=name; this.age=age; } @重写}@override//tostring方法并创建输出格式: public String toString () { return 'name:' name、age=' age; } classmycomparatorimplementscomparator { @ overridepublicintcompare (objecto 1,Object o2 ) person P1=(person ) O1; 人员2=(人员) o2; //自定义比较规则返回(int ) ) p1.age-p2.age ); }结果:

[name:D,age=10,name:A,age=20,name:B,age=30,name:E,age=40,name:C,age=50]

达到了我们希望的结果。

Set排序到此结束。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。