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

东莞网站竞价推广/开封seo公司

东莞网站竞价推广,开封seo公司,网站续费怎么做分录,贵阳网页设计Java Comparator和Comparable的区别 使用区别: Comparable & Comparator 都是用来实现集合中元素的比较、排序的; Comparable 是在集合内部定义的方法实现的排序, Comparator 是在集合外部实现的排序, 所以,如想实现排序&am…

Java Comparator和Comparable的区别

使用区别:

Comparable & Comparator 都是用来实现集合中元素的比较、排序的;
Comparable 是在集合内部定义的方法实现的排序,
Comparator 是在集合外部实现的排序,
所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。

Comparable定义:

package java.lang;
import java.util.*;public interface Comparable<T> {public int compareTo(T o);
}

Comparator定义:

package java.util;public interface Comparator<T> {int compare(T o1, T o2);boolean equals(Object obj);}

若一个类要实现Comparator接口:它一定要实现compare(T o1, T o2) 函数,但可以不实现equals(Object obj) 函数。

上述的compareTo和compare函数是自定义排序的方法,当这两个函数返回正数,则交换两个数的位置,解释如下:

  • x.compareTo(y): 如果return x-y; 则表示升序排列,因为数组中x在前,y在后,x-y如果是负数,则保持原序,即升序;如果x-y是正数,则交换两个数位置,使之保持升序。

  • compare(T o1, T o2): 如果return o1-o2; 则表示升序排列,原因如上

Comparable例子:

package thread.comparable;import java.util.ArrayList;
import java.util.Collections;public class Person implements Comparable {private int age;private String name;public Person(String name,int age) {this.age = age;this.name = name;}@Overridepublic int compareTo(Object o) {if (o instanceof Person) {Person person = (Person) o;int result;result = getAge() - person.getAge();//result =person.getAge() -  getAge();return result;}return 0;}@Overridepublic String toString() {return "Person{" +"age=" + age +", name='" + name + '\'' +'}';}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public static void main(String[] args) {ArrayList<Person> list = new ArrayList<Person>();list.add(new Person("ccc", 20));list.add(new Person("AAA", 30));list.add(new Person("bbb", 10));list.add(new Person("ddd", 40));// 打印list的原始序列System.out.printf("Original sort, list:%s\n", list);Collections.sort(list);System.out.printf("Original sort, list:%s\n", list);}
}

Comparator例子:

import java.util.ArrayList;
import java.util.Comparator;public class Person {private int age;private String name;public Person(String name, int age) {this.age = age;this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Person{" +"age=" + age +", name='" + name + '\'' +'}';}}class AseAgePerson implements Comparator<Person> {@Overridepublic int compare(Person o1, Person o2) {int result;result = o1.getAge() - o2.getAge();return result;}}class DescAgePerson implements Comparator<Person> {@Overridepublic int compare(Person o1, Person o2) {int result;result = o2.getAge() - o1.getAge();return result;}}class Test {public static void main(String[] args) {ArrayList<Person> list = new ArrayList<>();list.add(new Person("ccc", 20));list.add(new Person("AAA", 30));list.add(new Person("bbb", 10));list.add(new Person("ddd", 40));// 打印list的原始序列System.out.println(list);list.sort(new AseAgePerson());//list.sort(new DescAgePerson());System.out.println(list);}
}

参考:https://www.jianshu.com/p/6f564e298918

http://www.jmfq.cn/news/5289571.html

相关文章:

  • 上海seo网站优化/旺道seo工具
  • 桂林北站离哪个景区近/脚本外链平台
  • 网站建设优秀网站建/整合营销的案例
  • 政务门户网站建设/google国际版
  • 一个公司可以做多少个网站/在线生成个人网站免费
  • 青岛的网站建设公司/网站推广优化招聘
  • 高品质的佛山网站建设/谁有恶意点击软件
  • 校园网站制度建设/网络优化这个行业怎么样
  • 武汉万网站制作 费用/怎么seo网站排名
  • 做网站运营需要学什么/百度知道客服电话
  • 傻瓜建站/合肥seo
  • 南昌网站系统/网站页面优化方案
  • 北京建设工程交易协会网站/百度网站的优化方案
  • 做网站投注代理犯罪吗/软文广告案例500字
  • 工商注册网站/搜索引擎优化常用方法
  • 建设网站八大员成绩查询/品牌运营推广方案
  • 做网站用什么配置的笔记本/山西网络营销seo
  • 商城网站平台/词语搜索排行
  • 手机编程软件中文版免费/百度seo新站优化
  • 中国做的手机系统下载网站/如何建立自己的网站?
  • wordpress 发帖/网站建设优化公司
  • 自己建设小城市网站得多少钱/搜狗指数官网
  • 石碣镇网站建设/福州seo网站排名
  • 如何在对方网站上做外链/多用户建站平台
  • 做简单网站用什么软件有哪些内容/电脑优化软件推荐
  • vue 网站开发/艾瑞指数
  • 中文网站开发/广东广州网点快速网站建设
  • 上海企业网站建设靠谱/平台推广渠道
  • 毕业季网站如何做网页/留号码的广告网站不需要验证码
  • 光谷做网站推广哪家好/推广平台排名前十名