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

沈阳市网站网站定位策划

沈阳市网站,网站定位策划,深度系统,网站建设讠金手指科杰1. 前言 最近用到了集合排序#xff08;基于 Java 8#xff09;。现在我能用 Stream 的就用 Stream #xff0c;真香#xff01;排序可以这么写#xff1a; ListPeople peoples new ArrayList();// 中间省略// 按照年龄从小到大排序 peoples.sort(Compar… 1. 前言 最近用到了集合排序基于 Java 8。现在我能用 Stream 的就用 Stream 真香排序可以这么写 ListPeople peoples new ArrayList();// 中间省略// 按照年龄从小到大排序 peoples.sort(Comparator.comparing(People::getAge)); 这里排序用到了一个关键接口 java.util.Comparator。排序比较作为业务中经常出现的需求我们有必要研究一下这个接口。 2. Comparator 概念 Comparator 是一个函数式接口。它经常用于没有天然排序的集合进行排序如 Collections.sort 或 Arrays.sort。或者对于某些有序数据结构的排序规则进行声明如 TreeSet 、TreeMap 。也就是该接口主要用来进行集合排序。 3. Comparator 中的方法 Comparator 作为一个函数式接口只有一个抽象方法,但是它有很多的默认方法我们来认识一下这些方法们。 3.1 compare 抽象方法 作为Comparator 唯一的抽象方法int compare(T o1,T o2) 比较两个参数的大小 返回负整数零正整数 分别代表 o1o2、o1o2、o1o2通常分别返回 -1、0 或 1。伪表达式 // 输入两个同类型的对象 输出一个比较结果的int数字 (x1,x2)- int 实现该方法一定要注意以下事项 必须保证compare(x,y) 和compare(y,x) 的值的和必须为 0 。必须保证比较的顺序关系是可传递的如果compare(x,y)0 而且compare(y,z)0 则 compare(x,z)0。如果存在 compare(x,y)0则对于 z 而言存在 compare(x, z)compare(y, z)。然而并不 严格要求(compare(x, y)0) (x.equals(y))。一般说来任何违背这个条件的 Comparator 实现都应该明确指出这一事实情况。 3.2 comparing 系列方法 从 Java 8 开始Comparator 提供了一系列的静态方法并通过函数式的风格赋予 Comparator 更加强大和方便的功能我们暂且称它们为 comparing系列方法。 public static T, U ComparatorT comparing(Function? super T, ? extends U keyExtractor,Comparator? super U keyComparator){Objects.requireNonNull(keyExtractor);Objects.requireNonNull(keyComparator);return (ComparatorT Serializable)(c1, c2) - keyComparator.compare(keyExtractor.apply(c1),keyExtractor.apply(c2));} 该方法是该系列方法的基本方法。是不是看上去很难懂的样子我们来分析一下该方法。它一共两个参数都是函数式接口。 第一个参数 Function? super T, ? extends U keyExtractor 表示输入一个是 T 类型对象输出一个 U 类型的对象举个例子输入一个 People 对象返回其年龄 Integer 数值 // people - people.getAge(); 转换为下面方法引用 FunctionPeople, Integer getAge People::getAge;第二个参数 keyComparator就很好理解了表示使用的比较规则。 对 c1,c2 按照 第一个参数 keyExtractor 提供的规则进行提取特征然后第二个参数keyComparator对这两个特征进行比较。下面的式子其实可以概括为 3.1 的 (x1,x2)- int (c1, c2) - keyComparator.compare(keyExtractor.apply(c1),keyExtractor.apply(c2)) Comparator Serializable 为 Java 8 新特性:同时满足这两个类型约束 理解了这个方法后其它该系列的方法就好理解了这里不再赘述。目前 comparing 系列方法使用更加广泛。我们举一些例子 ListPeople peoples new ArrayList(); // ……………… // 按照年龄从低到高排序 peoples.sort(Comparator.comparing(People::getAge)); // 按照年龄从高到低排序 peoples.sort(Comparator.comparing(People::getAge, (x, y) - -x.compareTo(y)));同样你可以使用 java.util.Collections 或者 Stream 提供的排序方法来使用Comparator。 4. 小结 今天对 Comparator进行了简单的分析它用于构建集合排序的规则在日常开发中非常有用。下一篇 我们将对另一个和它十分相似的接口 Comparable 进行分析和比较它们的不同敬请关注。 关注微信公众号Felordcn 获取更多干货
http://www.huolong8.cn/news/69112/

相关文章:

  • 网站建设哪家好 北京理发培训专业学校
  • 搭建网站需要哪些东西企业服务有哪些内容
  • 十年经验网站开发公司微信主题wordpress
  • 湖北网站建设报价便宜电商网站建设
  • 网站后台上传表格简述网站开发具体流程图
  • 网站wordpress入侵今天广州新闻最新消息
  • 农业推广网站建设无锡建网站
  • 单职业传奇网站wordpress 创建分类
  • 男女做爰视频免费网站平面设计培训班课程
  • dw+如何做自适应网站安徽省建设工程安全协会网站
  • asp网站开发的背景与环境免费招聘模板下载
  • 网站建设价格标准新闻小程序启动失败 错误码
  • 怎样下载网站模版怎么运用区块链做网站
  • 免费网站注册免费创建网站网站内页301重定向
  • 长宁企业网站制作做网站公奇闻司郑州汉狮
  • 淘宝上面建设网站安全么8步快速搭建个人网站视频
  • 网站备案号在哪里查询企业所得税政策最新2023税率
  • 广西壮锦网站建设策划书网络外包服务公司
  • 购买网站空间ftp设计淮南市招标投标信息网
  • 宁波网站扔优化那个网站做外贸好
  • 四川省建筑信息网长春seo经理
  • 网站建设齐齐哈尔开发网站实时监控
  • 北京轨道交通建设管理有限公司网站文字图片在线制作生成
  • 外贸出口公司网站建设方案一元友情链接平台
  • 网站备案密码格式做网站现在可以挣钱吗
  • php网站截图学做效果图网站有哪些软件
  • 企业网站栏目规划的重要性叫人做网站要注意
  • 移动网站建设的前期规划内容导购网站怎么做的
  • 微信群如何推广网站建设网站建站服务公司
  • 定制网站建设济南怎么创网站赚钱吗