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

企业为何做网站gta5地产网站建设中

企业为何做网站,gta5地产网站建设中,小程序可以自己开发吗,php网站开发环境论文在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。Java实现对象排序的方式有两种: 自然排序:java.lang.Comparable定制排序:java.util.Comparator 规则:需要我们自定义根据对象的某个或某些属…
  • 在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。
  • Java实现对象排序的方式有两种:
    • 自然排序:java.lang.Comparable
    • 定制排序:java.util.Comparator
  • 规则:需要我们自定义根据对象的某个或某些属性进行排序

1. 方式一:实现Comparable接口

步骤:

  1. 用我们自定义的类A实现Comparable接口
  2. 重写Comparable接口中的compareTo(Object obj)方法,在此方法中声明类A的对象的大小比较规则

重写compareTo(Object obj)方法示例:和重写equals()方法思路类似

	@Overridepublic int compareTo(Object o) {//1.若实参对象和当前对象地址相同,则时同一个对象if (o == this) {return 0;}//2.若实参对象是当属于当前类或子类实例,则强转,声明比较规则if (o instanceof A) {// 强转A p = (A)o;// 比较规则:用参2与参1比较。小于return 负数,大于return 整数,相等return 0。// 比较规则1,这里注意是谁的compare方法int value = Double.compare(this.xxx,xxx);// 比较规则2if (value != 0) {// 从小到大// return value;// 从大到小return -value;}// 若比较规则1的结果相同,则使用该规则;从从小到大return this.xxx.compareTo(p.xxx);// 从大到小// return -this.xxx.compareTo(p.xxx);}//3.若实参对象不属于当前类,则抛出类型异常throw new RuntimeException("类型不匹配!");// 使用示例// Arrays.sort(arr实现类对象的实例)}

2. 方式二:实现Comparator接口

2.1 为什么有了Comparable还需要Comparator

  • 情况1: 当我们需要对对象进行排序,而对象所在类又没有实现Comparable,我们也没法修改所在类代码的情况下使用。
  • 情况2: 当这个类实现了Comparable接口,但是比较规则不满足我们的需求,而我们又无法修改其源码的时候使用。

因为以上两种情况的存在,我们可以临时的去指定排序方式,于是就有了Comparator。

2.2 实现

步骤:

  1. 在当前类A实现Comparator接口
  2. 重写compare(Object o1, Object o2)方法,在此方法中声明对象的大小比较规则

注意: Comparator的比较规则会覆盖Comparable的比较规则

//1.创建一个实现Comparator接口的实现类对象,这里使用了匿名实现类
Comparator comparator = new Comparator() {@Overridepublic int compare(Object o1, Object o2) {//2.若实参对象是当属于当前类或子类实例,则强转,声明比较规则if(o1 instanceof A && o2 instanceof A){// 强转A p1 = (A) o1;A p2 = (A) o2;// 比较规则:用参2与参1比较。小于return 负数,大于return 整数,相等return 0。// 从小到大return Double.compareTo(p1.getXxx(),p2.getXxx());// 从大到小//return -Double.compareTo(p1.getXxx(),p2.getXxx());}//3.若实参对象不属于当前类,则抛出类型异常throw new RuntimeException("类型不匹配!");// 使用示例// Arrays.sort(arr,comparator类A的实例);}
}

3. Comparable VS Comparator

角度一:

  • 自然排序:单一唯一,一旦指定了比较规则就不能更改
  • 定制排序:灵活多样,创建多个Comparator对象,指定不同的比较规则,调用不同的对象即可

角度二:

  • 自然排序:一劳永逸,一旦声明好就可以永久使用
  • 定制排序:在使用的时候才去零时声明

角度三:

  • 自然排序:实现接口Comparable,重写抽象方法compareTo(Object obj)
  • 定制排序:实现接口Comparator,重写抽象方法compare(Object o1, Object o2)
http://www.yayakq.cn/news/553481/

相关文章:

  • 广东省建设协会网站做网站字体大小
  • 邯郸做网站的公司哪家好wordpress修改关键字
  • 什么样的网站需要icp经营性备案提供中小企业网站建设
  • 网站建设的什么是网站建设的第一阶段电子商务网站建设与管理相关文献
  • 深圳电子商务网站建设公司尼罗发表小说做的的网站是哪个
  • 有代源码怎么做自己网站wordpress 问答类主题
  • 靖江市属于哪里有做网站的惠州水口网站建设
  • 门户网站制作定制企业名录免费查询器下载
  • 生成图片链接的网站广告项目网站开发
  • 文化传媒可以做网站吗长沙招聘网最新招聘信息
  • 试分析网站推广和优化的原因最近最新新闻事件
  • 设计网站价格特效网站大全
  • 槐荫区网站建设app与移动网站开发资料
  • 网站建设单位什么是网站黑链
  • 网站模板套用百度推广首次开户需要多少钱
  • 国外中文网站排行wordpress rss代码
  • 国外包装设计网站郑州区块链数字钱包网站开发周期
  • 做网站 需要多少钱商业类网站的设计与制作
  • 网站的外部推广乔拓云h5制作
  • 网站开发设计运维外贸业务员招聘人才网
  • 免费ppt模板的网站怎样精通wordpress
  • 网站备案 论坛上海十大网站建设
  • 天津网站建设哪个好邯郸注册公司流程和费用
  • 分销网站建站wordpress积分投稿
  • 关于做网站的ppt徐汇网站建设公司
  • 1999年怎样建立企业网站哈尔滨搜索引擎建站
  • 重庆邮电大学官网网站响应式网站开发demo
  • 网站建设是什么科目有没有做汽车维修记录网站
  • 免费网站服务商办公室oa管理系统
  • 《php网站开发》电子课件wordpress ajax请求