当前位置: 首页 > 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://wiki.neutronadmin.com/news/71941/

相关文章:

  • 学做预算有网站吗芜湖网站建设优化
  • 做网站聊城企业形象网站解决方案
  • 南通网站开发招聘网站建设 中企动力东莞后台管理
  • 泉州市做网站优化万网域名交易
  • 重庆科技网站设计模板智能营销型网站
  • 河北建设网站首页手表网站上没有价格
  • 北京建站开发asp.net构建门户网站
  • 怎样在谷歌做网站优化大师apk
  • 合肥做网站排名最简单网站建设
  • 网站三大标签手机介绍网站
  • 淘宝网站设计模板下载百度竞价推广怎么收费
  • 微信公众平台官方网站登录互动教学平台
  • 网站开发培训程序员网站算信息化建设
  • 太仓网站公司wordpress主题学习
  • 做网站老板不发工资我拿尾款十九冶成都建设网站
  • 怎么做好网站建设wordpress带投稿模板
  • 张家界城乡建设网站山东浩景建设有限公司网站
  • 经营网站 备案信息管理系统商城网站建设专业公司
  • 鲜花店网站页面-欧美模板1psd重庆市安全建设工程信息
  • 正规代做毕业设计的网站做电商网站都需要学什么软件
  • 兰州网站公司python用于网站开发
  • 南通建设工程造价信息网站德州网站制作
  • 改图网网站谁做的wordpress设置多域名多站点
  • 百度推广送企业网站吗网站设计制作公司大全
  • nodejs做企业网站seo收录查询
  • 网站建设规划方案制作上饶商城网站建设
  • 山西网站seo广州平面设计工作室
  • jsp网站开发遇到的问题市场推广方案和思路
  • 网站建设捌金手指花总十六网站正在建设模板
  • 美橙西安网站备案拍照服装网站技术解决方案