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

网站标题关键词堆砌企业网站推广方案网络营销作业

网站标题关键词堆砌,企业网站推广方案网络营销作业,杭州商城网站开发,门户网站域名是什么意思解锁Python编程的无限可能#xff1a;《奇妙的Python》带你漫游代码世界 与其他方法不同#xff0c;compareTo 并非 Object 类中声明的#xff0c;而是 Comparable 接口的唯一方法。compareTo 方法与 equals 类似#xff0c;但它不仅支持相等性比较#xff0c;还允许顺序…解锁Python编程的无限可能《奇妙的Python》带你漫游代码世界 与其他方法不同compareTo 并非 Object 类中声明的而是 Comparable 接口的唯一方法。compareTo 方法与 equals 类似但它不仅支持相等性比较还允许顺序比较同时它是泛型的。通过实现 Comparable 接口一个类表明其实例具有自然顺序。这使得对实现 Comparable 的对象数组进行排序变得非常简单 Arrays.sort(a);使用 Comparable 接口可以轻松地搜索、计算极值或维护自动排序的集合。例如以下程序利用 String 实现了 Comparable它打印出一个按字母顺序排列的命令行参数列表并去除重复项 public class WordList {public static void main(String[] args) {SetString s new TreeSet();Collections.addAll(s, args);System.out.println(s);} }通过实现 Comparable你的类可以与依赖该接口的各种通用算法和集合实现进行互操作。实现 Comparable 所需的工作量非常小但却带来了巨大的收益。几乎所有 Java 平台库中的值类以及所有枚举类型详见【条目34】都实现了 Comparable。如果你编写的值类有明显的自然排序例如字母顺序、数字顺序或时间顺序那么你应该实现 Comparable 接口。 Comparable 接口声明如下 public interface ComparableT {int compareTo(T t); }compareTo 方法的通用合同 compareTo 方法的通用合同类似于 equals 的合同 比较当前对象与指定对象的顺序返回负整数、零或正整数分别表示当前对象小于、等于或大于指定对象。如果两个对象具有不同类型通常会抛出 ClassCastException。 这个合同的数学符号表示如下 对所有 x 和 y应确保 sgn(x.compareTo(y)) -sgn(y.compareTo(x))这意味着 x.compareTo(y) 只有在 y.compareTo(x) 抛出异常时才会抛出异常。应确保传递性如果 x.compareTo(y) 0 y.compareTo(z) 0则 x.compareTo(z) 0。如果 x.compareTo(y) 0则 sgn(x.compareTo(z)) sgn(y.compareTo(z)) 对所有 z 应成立。 此外推荐但不强制要求 x.compareTo(y) 0 等价于 x.equals(y)。如果违背了这一点应在类文档中注明该类的自然顺序与 equals 不一致。 比较与 equals 的一致性 compareTo 方法的比较应符合 equals 的等价性、对称性和传递性原则。如果违反这些原则可能会导致依赖比较的类如 TreeSet、TreeMap出错。虽然不致命但会导致结果不一致。例如BigDecimal 类的 compareTo 方法与其 equals 方法不一致。对于 HashSetnew BigDecimal(1.0) 和 new BigDecimal(1.00) 被视为不相等而在 TreeSet 中则视为相等。 编写 compareTo 方法 编写 compareTo 方法类似于编写 equals 方法但有一些关键区别。由于 Comparable 是参数化接口因此 compareTo 方法是静态类型化的避免了类型检查和强制转换。如果参数类型错误代码甚至无法编译。 在 compareTo 方法中字段是按顺序比较的。对于对象引用字段可以递归调用 compareTo 方法。如果字段没有实现 Comparable或者需要非标准排序可以使用 Comparator。例如下面是一个比较 CaseInsensitiveString 类的 compareTo 方法 // 使用对象引用字段的单字段 Comparable public final class CaseInsensitiveString implements ComparableCaseInsensitiveString {public int compareTo(CaseInsensitiveString cis) {return String.CASE_INSENSITIVE_ORDER.compare(s, cis.s);}// 其他代码省略 }使用比较器构造方法实现 compareTo 在 Java 8 中Comparator 接口提供了一组构造方法来简洁地构建比较器。下面是使用比较器构造方法实现 PhoneNumber 类 compareTo 的例子 // 使用比较器构造方法的 Comparable private static final ComparatorPhoneNumber COMPARATOR comparingInt((PhoneNumber pn) - pn.areaCode).thenComparingInt(pn - pn.prefix).thenComparingInt(pn - pn.lineNum);public int compareTo(PhoneNumber pn) {return COMPARATOR.compare(this, pn); }这种方法通过使用 Comparator 的 comparingInt 和 thenComparingInt 方法来简洁地构建比较逻辑。 避免基于差值的比较器 不要使用基于两个值差值的比较器例如 // 错误的差值比较器 - 违反传递性 static ComparatorObject hashCodeOrder new Comparator() {public int compare(Object o1, Object o2) {return o1.hashCode() - o2.hashCode();} };这种方法容易受到整数溢出和浮点运算误差的影响。相反应该使用静态比较方法或比较器构造方法例如 // 基于静态比较方法的比较器 static ComparatorObject hashCodeOrder new Comparator() {public int compare(Object o1, Object o2) {return Integer.compare(o1.hashCode(), o2.hashCode());} };或 // 基于比较器构造方法的比较器 static ComparatorObject hashCodeOrder Comparator.comparingInt(o - o.hashCode());总结 当你实现具有合理顺序的值类时应该让该类实现 Comparable 接口以便能够轻松排序、搜索和在集合中使用。避免在 compareTo 方法中使用 和 操作符推荐使用 Java 提供的静态比较方法或比较器构造方法。
http://www.hkea.cn/news/14525357/

相关文章:

  • excel表如何做网站连接不锈钢网站建设哪家好
  • 手机网站 域名vi设计手册模板ppt
  • dw怎么导入网站模板伍佰亿搜索引擎网站系统
  • 如何百度搜到自己的网站餐饮小程序模板
  • 个人网站 名字云南 网站模版
  • 建站资源共享2345浏览器电脑版
  • 2017网站开发语言排名p2p网站开发方法
  • 请简述网站建设流程图荥阳市城乡规划和建设局网站
  • 做单页网站企业形象vi设计公司
  • 网站中文域名到期铁岭做网站的公司
  • aspnet网站开发视频合肥seo网站多少钱
  • 小网站怎么建设php空间放多个网站
  • 免费发布产品网站企业做网站的好处是什么
  • 网站域名重定向怎么做微信小商店怎么分销
  • 成品网站app开发9k9k网页游戏开服表
  • 益阳做网站怎么便宜应用商店关键词优化
  • 苏州企业网站建设服务中心成全高清视频免费观看
  • 洪涛怎么样海城市建设网站汕头装修接单网站
  • 汉中专业做网站手机网站管理软件
  • 零基础网站建设及维护视频课程网站防止镜像
  • 视频网站的服务器建设预付网站制作费怎么做凭证
  • 客户管理软件哪家好做神马网站优化快
  • 门户网站和网站的区别全国十大跨境电商排名
  • 山东网站制作策划视频 播放网站怎么做
  • 免费申请网站域名app开发定制外包服务商e
  • 宁夏城乡住房建设厅网站wordpress支持linux吗
  • 某网站项目策划书建立网站要怎么做
  • 网站开发公司面试题电子商务网站建设模块
  • 简单的企业网站php做的比较好的旅游网站
  • 怎样申请自己企业的网站优秀网站建设哪家便宜