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

电子商务网站的推广方式手机怎么做优惠券网站

电子商务网站的推广方式,手机怎么做优惠券网站,在线简历,做游戏必备的几个网站使用外部比较器Comparator进行排序 当我们需要对集合的元素进行排序的时候#xff0c;可以使用java.util.Comparator 创建一个比较器来进行排序。Comparator接口同样也是一个函数式接口#xff0c;我们可以把使用lambda表达式。如下示例#xff0c; package com.common;im…使用外部比较器Comparator进行排序 当我们需要对集合的元素进行排序的时候可以使用java.util.Comparator 创建一个比较器来进行排序。Comparator接口同样也是一个函数式接口我们可以把使用lambda表达式。如下示例 package com.common;import java.util.*; import java.util.stream.Collectors;public class ComparatorTest {public static void main(String[] args) {Employee e1 new Employee(John, 25, 3000, 9922001);Employee e2 new Employee(Ace, 22, 2000, 5924001);Employee e3 new Employee(Keith, 35, 4000, 3924401);ListEmployee employees new ArrayList();employees.add(e1);employees.add(e2);employees.add(e3);/*** SuppressWarnings({unchecked, rawtypes})* default void sort(Comparator? super E c) {* Object[] a this.toArray();* Arrays.sort(a, (Comparator) c);* ListIteratorE i this.listIterator();* for (Object e : a) {* i.next();* i.set((E) e);* }* }** sort 对象接收一个 Comparator 函数式接口可以传入一个lambda表达式*/employees.sort((o1, o2) - o1.getName().compareTo(o2.getName()));Collections.sort(employees, (o1, o2) - o1.getName().compareTo(o2.getName()));employees.forEach(System.out::println);} }/*** [Employee(nameJohn, age25, salary3000.0, mobile9922001),* Employee(nameAce, age22, salary2000.0, mobile5924001),* Employee(nameKeith, age35, salary4000.0, mobile3924401)]*/ class Employee {String name;int age;double salary;long mobile;// constructors, getters setterspublic Employee(String name, int age, double salary, long mobile) {this.name name;this.age age;this.salary salary;this.mobile mobile;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary salary;}public long getMobile() {return mobile;}public void setMobile(long mobile) {this.mobile mobile;}Overridepublic String toString() {final StringBuilder sb new StringBuilder(Employee{);sb.append(name).append(name).append(\);sb.append(, age).append(age);sb.append(, salary).append(salary);sb.append(, mobile).append(mobile);sb.append(});return sb.toString();} }使用 Comparator.comparing 进行排序 comparing 方法一 查看 Comparator 类内部实现还有一个 comparing 方法实现如下 public static T, U extends Comparable? super U ComparatorT comparing(Function? super T, ? extends U keyExtractor){Objects.requireNonNull(keyExtractor);return (ComparatorT Serializable)(c1, c2) - keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));}其返回值是 (c1, c2) - keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2)); 一个lambda表达式也就是一个Compator 。所以上面那个例子也可以改造成 如下 package com.common;import java.util.*;public class ComparatorTest {public static void main(String[] args) {Employee e1 new Employee(John, 25, 3000, 9922001);Employee e2 new Employee(Ace, 22, 2000, 5924001);Employee e3 new Employee(Keith, 35, 4000, 3924401);ListEmployee employees new ArrayList();employees.add(e1);employees.add(e2);employees.add(e3);/*** SuppressWarnings({unchecked, rawtypes})* default void sort(Comparator? super E c) {* Object[] a this.toArray();* Arrays.sort(a, (Comparator) c);* ListIteratorE i this.listIterator();* for (Object e : a) {* i.next();* i.set((E) e);* }* }** sort 对象接收一个 Comparator 函数式接口可以传入一个lambda表达式*/employees.sort((o1, o2) - o1.getName().compareTo(o2.getName()));Collections.sort(employees, (o1, o2) - o1.getName().compareTo(o2.getName()));employees.forEach(System.out::println);/*** Comparator.comparing 方法的使用** comparing 方法接收一个 Function 函数式接口 通过一个 lambda 表达式传入**/employees.sort(Comparator.comparing(e - e.getName()));/*** 该方法引用 Employee::getName 可以代替 lambda表达式*/employees.sort(Comparator.comparing(Employee::getName));} }/*** [Employee(nameJohn, age25, salary3000.0, mobile9922001),* Employee(nameAce, age22, salary2000.0, mobile5924001),* Employee(nameKeith, age35, salary4000.0, mobile3924401)]*/ class Employee {String name;int age;double salary;long mobile;// constructors, getters setterspublic Employee(String name, int age, double salary, long mobile) {this.name name;this.age age;this.salary salary;this.mobile mobile;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary salary;}public long getMobile() {return mobile;}public void setMobile(long mobile) {this.mobile mobile;}Overridepublic String toString() {final StringBuilder sb new StringBuilder(Employee{);sb.append(name).append(name).append(\);sb.append(, age).append(age);sb.append(, salary).append(salary);sb.append(, mobile).append(mobile);sb.append(});return sb.toString();} }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));}和comparing 方法一不同的是 该方法多了一个参数 keyComparator keyComparator 是创建一个自定义的比较器。 Collections.sort(employees, Comparator.comparing(Employee::getName, (s1, s2) - {return s2.compareTo(s1);}));使用 Comparator.reversed 进行排序 返回相反的排序规则 /*** 相反的排序规则*/ Collections.sort(employees, Comparator.comparing(Employee::getName).reversed());employees.forEach(System.out::println);输出 Employee{nameKeith, age35, salary4000.0, mobile3924401} Employee{nameJohn, age25, salary3000.0, mobile9922001} Employee{nameAce, age22, salary2000.0, mobile5924001}使用 Comparator.nullsFirst进行排序 当集合中存在null元素时可以使用针对null友好的比较器null元素排在集合的最前面 employees.add(null); //插入一个null元素 Collections.sort(employees, Comparator.nullsFirst(Comparator.comparing(Employee::getName))); employees.forEach(System.out::println);Collections.sort(employees, Comparator.nullsLast(Comparator.comparing(Employee::getName))); employees.forEach(System.out::println);使用 Comparator.thenComparing 排序 首先使用 name 排序紧接着在使用ege 排序来看下使用效果 Collections.sort(employees, Comparator.comparing(Employee::getAge).thenComparing(Employee::getName)); employees.forEach(System.out::println);
http://www.pierceye.com/news/499473/

相关文章:

  • html网站首页图片切换一元购物网站怎么做
  • 焦作网站建设费用wordpress php最大输出变量
  • 移动端高端网站开发做私活的网站
  • 广东专业做网站浙江建设工程信息网高工评选
  • 当阳网站建设电话时尚类网站建设
  • 南平网站建设公司seo中文含义是什么
  • 重庆科技建设信息网站关键词做网站标题是什么意思
  • 潍坊中企动力做的网站怎么样哪个网站做黄金交易最好
  • 徐州金网网站建设西安网站建设制作公司
  • 中小企业网站建设好么做国外网站衣服码数要怎么写
  • 新浪做网站wordpress divi 主题
  • 微网站建设资讯网页游戏开发教程
  • 网站建设评估百度公司地址
  • python 做网站开发吗搜房网网站跳出率
  • 深圳企业模板网站建设做高性能的网站 哪门语言好
  • 网站后台不能上传微信公众平台网页版登陆
  • 广州网站营销seo费用成都建设网站那家好
  • 网站建设规划书结构简单wordpress
  • 域名注册网站哪个好山东淄博网络科技有限公司
  • 固始县网站建设培训怎么制作网站首页
  • 产品经理做网站三河市最新消息
  • 做新闻类网站需要什么资质如何外贸seo网站建设
  • 注册网站流程和费用百度seo关键词排名s
  • 做推广网站的去哪能买到有效资料苏州建设网站找网络公司
  • vs做网站如何输出怎么做flash网站
  • 网站做政务广告传媒公司简介ppt
  • 番茄网络营销策划方案seo网站培训
  • 自己做一网站高唐网页定制
  • 快速网站seo效果什么是网络营销与概念
  • 个体网站建设企业网站做的好的有什么公司