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

宁波网站推广有哪些一个人怎么做网站

宁波网站推广有哪些,一个人怎么做网站,申诉网站风险,安阳 网站建设注:如果你对排序不理解,请您耐心看完,你一定会明白的。文章通俗易懂。建议用idea运行一下案例。 1)自然排序和比较器排序的区别? 自然排序是对象本身定义的排序规则,由对象实现 Comparable 接口&#xff…

注:如果你对排序不理解,请您耐心看完,你一定会明白的。文章通俗易懂。建议用idea运行一下案例。

1)自然排序和比较器排序的区别?
  • 自然排序是对象本身定义的排序规则,由对象实现 Comparable 接口,重写compareTo()方法。
  • 比较器排序是由外部提供的排序规则,可以使用不同的比较器来定义多种排序方式。通过实现 Comparator 接口,重写compare()方法。
(2)Comparable接口简介

若一个实现了Comparable接口,则意味着该类支持排序。例如现在有一个学生类,该类实现了该接口,那么如果我们定义了一个LIst集合存储了5个该类的对象。

  • 我们就可以使用Collections提供的sort方法对list集合里面的学生对象,按照体重进行排序。如果没有实现该接口,就调用sort方法就会抛出异常,因为jdk不知道如何去比较,按照什么去比较。
  • 当然我们也可以使用对象数组去存储,使用Arrays.sort进行排序(原理同上)

PS:如果实现了该接口,在compare To方法则会指明如何去比较 Arrays.sort /Collections. sort通过返回值,来进行重整顺序。

  • 该接口返回值为负数:表示第一个对象应该排在第二个对象之前。
  • 该接口返回值为零:表示两个对象的顺序相同。
  • 该接口返回值为正数:表示第一个对象应该排在第二个对象之后。
public class Student implements Comparable<Student>{private Double weight;public Student(Double weight){this.weight = weight;}//指定排序的方式-按照体重进行排序 @Override public int compareTo(Student student) {if (this.weight > student.weight) {return 1;    } else if (this.weight < student.weight) {return -1;} else {return 0;}}@Overridepublic String toString() {return "Student{" +"weight=" + weight +'}';}
}public class demo {public static void main(String[] args) {Student[] stu = new Student[]{new Student(120.5), new Student(125.5), new Student(121.5)};System.out.println(Arrays.toString(stu));Arrays.sort(stu);System.out.println(Arrays.toString(stu));}
}

运行结果:

PS1:上述CompareTo代码可以进一步简化,使用double提供的compareTO方法,来判断大小,返回对应的正数 负数 零

PS2: Java中很多对象都实现了Comparable接口,可以直接进行自然排序 ,默认都是从小到大排列。

1)String:按照字符串中字符的Unicode值进行比较

2)Character:按照字符的Unicode值来进行比较

3)数值类型对应的包装类以及BigInteger、BigDecimal:按照它们对应的数值大小进行比较

4)Boolean:true 对应的包装类实例大于 false 对应的包装类实例

5)Date、Time等:后面的日期时间比前面的日期时间大

(3)Comparator比较器

它比较适用于那些没有实现comparable接口,且不方便修改代码的类。或者实现了该接口,但排序规则不适合当前操作,可以考虑使用比较器进行排序。

  • 重写compare方法,比较o1和o2的大小:如果方法返回正整数,则表示o1大于o2;如果返回0,表示相等;返回负整数,表示o1小于o2。
  • 我们将 Comparator 传递给 sort 方法(如 Collections.sort 或 Arrays.sort),从而允许在排序顺序上实现精确控制。
  • 可以使用 Comparator 来控制某些数据结构(如有序 set或有序映射)的顺序,或者为那些没有自然顺序的对象 collection 提供排序。

案例2:

public class Dog {private int food;public Dog(int food){this.food = food;}@Overridepublic String toString() {return "Dog{" +"food=" + food +'}';}public void setFood(int food){this.food = food;}public int getFood(){return this.food;}
}public class DogComparator implements Comparator<Dog> {@Overridepublic int compare(Dog t1, Dog t2) {if (t1.getFood()>t2.getFood()){return 1;} else if (t1.getFood()<t2.getFood()){return -1;} else{return 0;}}
}public class Test {public static void main(String[] args) {Dog[] dogs = new Dog[]{new Dog(1), new Dog(4), new Dog(3), new Dog(8)};System.out.println(Arrays.toString(dogs));System.out.println("=====================");Arrays.sort(dogs, new DogComparator());System.out.println(Arrays.toString(dogs));}
}

运行结果: 

总结:

        Comparaable是一个排序接口实现的是自然排序,如果一个类实现了该接口,证明该类能够排序,否则不能排序,强行排序会抛异常。除了上述自然排序外,还可以实现比较器排序,通过创建比较器来说明这个类如何进行排序。二者可以一起用,举一个例子,一个类实现了自然排序,它是逆序输出,这是我突然就有一个例子想正序输出,则就可以写一个比较器。

http://www.yayakq.cn/news/124874/

相关文章:

  • 沈阳网站建设推广服务软件开发培训机构地址
  • 个人身份调查网站网站建设补充
  • 深圳网站制作公司兴田德润怎么样小程序服务器多少钱
  • soho需不需要做网站弄企业邮箱宁波网站开发制作
  • 苏州北京商场网站建设seo运营学校
  • 正规网站建设套餐报价长沙做网站 青创互联
  • 莱州网站建设青岛华夏商务网外贸网站和内贸
  • 谁家做电商商城网站便宜网站专业技能培训机构
  • 做网站推广哪家好如何做品牌宣传与推广
  • 站长网站查询工具wordpress4.9.8 特别慢
  • 公司网站二维码生成器泰兴网站建设
  • 昌宁县住房和城乡建设网站英文网站建设600
  • 网站制作 杭州公司wordpress add_option
  • 德阳网站seo做网站游戏推广赚钱
  • 网站开发类参考文献得物app公司怎么样
  • 建设网站培训学校网站软件资源
  • 六盘水建设网站伦教网站建设
  • 什么是网站内页网站建设教学后记
  • 网站建设算固定资产吗系统门户网站建设常用功能
  • 基于ssh架构网站开发免费搭建服务器
  • 自己如何建设个网站福建省漳州市建设局网站
  • 网站建设茂名微信开发网站建设程序
  • 黄岩做网站的公司云服务器建立多个网站
  • 如何提升网站的转化率怎么自己做一个网页链接
  • 网站备案号 查询设计制作公益广告牌教案
  • 做网站和app多少费用做ppt卖给网站
  • 网站优化需求北京完美建设有限公司网站
  • 佛山网站建设 骏域网站建设及推广的书
  • xampp做网站网页视频下载软件哪个好
  • 泰安网站建设推荐太原网站建设哪家强