当前位置: 首页 > news >正文

湛江模板建站公司中国消防公众号关注

湛江模板建站公司,中国消防公众号关注,婚纱外贸soho建哪种网站好,wordpress在线编辑器前言 总所周知,java对象的比较有 三种方式 最简单的是可以调用equals(). 因为这个方法定义在Object类中#xff0c;而我们的类都继承了Object类.所以我们自己定义的类都可以使用这个方法. 除此以外还有两个比较接口,可以通过实现他们的某些方法比较我们的对象 他们是 Com…前言 总所周知,java对象的比较有 三种方式  最简单的是可以调用equals(). 因为这个方法定义在Object类中而我们的类都继承了Object类.所以我们自己定义的类都可以使用这个方法. 除此以外还有两个比较接口,可以通过实现他们的某些方法比较我们的对象 他们是 Comparable 和 Comparator! Comparable 接口 方法: int compareTo(T o)用途: 定义对象的自然排序。实现: 当一个类实现 Comparable 接口时它必须重写 compareTo() 方法。这个方法用于比较当前对象与指定对象的顺序。 光这么说可能有点抽象,我们直接看代码 class Person implements ComparablePerson {public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}public int getAge() {return age;} Overridepublic int compareTo(Person other) {return Integer.compare(this.age, other.age); // 按年龄升序排序}Overridepublic String toString() {return name ( age );} } // 使用示例ListPerson people new ArrayList();people.add(new Person(Alice, 30));people.add(new Person(Bob, 25));people.add(new Person(Charlie, 35));Collections.sort(people);System.out.println(people); // 输出: [Bob (25), Alice (30), Charlie (35)] 通过这个代码我们可以看到, 我首先创建了一个Person类,接入了 Comparable 接口 又重写了compareTo 这个方法 这里有一个问题我想提一嘴,为什么用的是包装类Integer 去比较,而不是int 答: Integer 是一个对象: Integer 类提供了比较的方法比如 compareTo() 和静态方法 Integer.compare(), 这些方法可以直接用于比较两个 Integer 对象。 int 是基本类型: 基本数据类型没有方法因此不能直接调用比较函数。虽然你可以使用运算符如 或 来比较 int 值但在需要使用排序或集合等高级操作时必须依赖于对象的方法。 我们可以看看Integer的 代码 public final class Integer extends Number implements ComparableInteger 我们可以得出结论: Integer 类实现了 Comparable 接口允许你比较两个 Integer 对象。这使得 Integer 可以使用 compareTo() 方法进行自然排序。 而我们的int就没有这个待遇了 它的特点 侵入性很强,直接写在类里面了,每次使用都会是这个比较原则 Comparator比较器 如果去使用 这个接口,我们需要一个比较器对象,实现这个接口 class NameComparator implements ComparatorPerson {Overridepublic int compare(Person o1, Person o2) {return o1.name.compareTo(o2.name);} } 还是刚刚的类,刚刚的例子 ListPerson people2 new ArrayList();people2.add(new Person(Alice, 30));people2.add(new Person(Charlie, 35));people2.add(new Person(Bob, 25));Collections.sort( people2, new NameComparator());System.out.println( people2); // 输出: [Alice (30), Bob (25), Charlie (35)] 它的特点  非侵入性,即不会影响类本身的排序原则。 关于Collections 我们这里使用了Collections,这是一个工具类,有sort方法 我们看看它的代码 public static T extends Comparable? super T void sort(ListT list) {list.sort(null);}public static T void sort(ListT list, Comparator? super T c) {list.sort(c);}Collections类中的sort()方法可以接收实现了List接口的任何集合如ArrayList和LinkedList并支持使用Comparable接口或Comparator比较器对其元素进行排序。这使得我们能够灵活地对不同类型的列表进行排序便于管理和操作数据。 完整代码 import java.util.*; class Person implements ComparablePerson {public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}public int getAge() {return age;} Overridepublic int compareTo(Person other) {return Integer.compare(this.age, other.age); // 按年龄升序排序}Overridepublic String toString() {return name ( age );} } class NameComparator implements ComparatorPerson {Overridepublic int compare(Person o1, Person o2) {return o1.name.compareTo(o2.name);} } public class Com {public static void main(String[] args){// 使用示例ListPerson people new ArrayList();people.add(new Person(Alice, 30));people.add(new Person(Bob, 25));people.add(new Person(Charlie, 35));Collections.sort(people);System.out.println(people); // 输出: [Bob (25), Alice (30), Charlie (35)]ListPerson people2 new ArrayList();people2.add(new Person(Alice, 30));people2.add(new Person(Charlie, 35));people2.add(new Person(Bob, 25));Collections.sort( people2, new NameComparator());System.out.println( people2); // 输出: [Alice (30), Bob (25), Charlie (35)]} }结尾 本文算是笔者的第二篇备忘录吧,学习路上对于细节知识笔者总是喜欢刨根问底,为了不浪费幸苦得出的知识,笔者写下这篇博客供大家伙也参考参考
http://www.hkea.cn/news/14582633/

相关文章:

  • 如何自学3d建模搜索引擎优化简称
  • sns网站设计国内最好的网站建设公司
  • 怎样用vps做网站六盘水市城乡建设局网站
  • 网站建设的一些原理网站友链是什么情况
  • 长春公司推广网站爱站关键词挖掘软件
  • 可以做哪些有趣的网站网站推广广告语
  • 用上海注册的公司建的网站兼职做一篇微信的网站
  • 网站软件定制开发公司响应式网站管理系统
  • 网站自己做还是用程序wordpress备案
  • 如何建单页网站机电建设工程施工网站
  • 矿区网站建设网站审核时间
  • 找人给公司做网站去哪找二七郑州网站建设
  • 丹阳做公司网站的哪个网站可以做兼职笔译
  • 成都做网站的公司对电子商务网站与建设的心得
  • 如何网站专题策划建设 网站工作汇报
  • 手机咋建网站沈阳高端网站
  • 网站主持人长沙建网站的
  • 做网站哪个公司好 快选宁陵建站宝湖南天辰建设责任公司网站
  • 潍坊优化网站排名食品网站设计
  • 通过主机名访问网站做网站导航站的注意点
  • seo是东莞企业网站排seo免费挣钱最快的游戏
  • 网站标题栏做多大网站建设工作都包括哪些方面
  • 网站建设简介电话石家庄效果图设计
  • 广州市建设工程安监站网站福州建设项目管理公司
  • 个人是否可以申请持有网站网站快速排名是怎么做的
  • 湛江免费制作网站杭州营销型网站建设工作室
  • 县科协微网站建设网站建设与规划的文献
  • 网站留言如何做的如何网上注销自己的公司
  • 怎么建自己公司网站宣传推广策略有哪些
  • 临安区做网站的公司深圳企业公司有哪些