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

网站开发项目运营经理岗位职责义乌最好的电商培训学校

网站开发项目运营经理岗位职责,义乌最好的电商培训学校,租号网站咋做,新中式装修效果图转 Lambda表达式例子1.Java8 新特性介绍 写java的同学对java8肯定知道 那么java8到底有哪些特性呢&#xff0c;总结如下&#xff1a; Lambda表达式 函数式接口 Stream Optional Predicate Function Consumer Filter Map-Reduce 新的Date API 取id 列表List<Integer> tran…

转 Lambda表达式例子

1.Java8 新特性介绍

写java的同学对java8肯定知道 那么java8到底有哪些特性呢,总结如下:

Lambda表达式
函数式接口
Stream
Optional
Predicate
Function
Consumer
Filter
Map-Reduce
新的Date API

取id 列表

List<Integer> transactionsIds = transactions.parallelStream().filter(t -> t.getType() == Transaction.GROCERY).sorted(comparing(Transaction::getValue).reversed()).map(Transaction::getId).collect(toList());



最核心的当然是函数式编程了,写代码非常简单,请看下面详细例子介绍

2.Java8 lambda使用总结-结合实例介绍

很多同学一开始接触Java8可能对Java8 Lambda表达式有点陌生,下面我将结合实例介绍Java8的使用 并与Java7进行比较:

基础类

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Person {private int id;private String name;private String address;
}

1.List操作

public class ExampleList {private static List<String> items = new ArrayList<>();static {items.add("A");items.add("BC");items.add("C");items.add("BD");items.add("E");}public static void main(String[] args) {//Java8之前操作Listfor(String item:items){System.out.println(item);}//Java8 lambda遍历listitems.forEach(c-> System.out.println(c));items.forEach(item->{if("C".equals(item)){System.out.println(item);}});System.out.println("--------");//先过滤items.stream().filter(s->s.contains("B")).forEach(c1-> System.out.println(c1));}
}

2.Map操作

public class ExampleMap {private static Map<String, Integer> items = new HashMap<>();static {items.put("A", 10);items.put("B", 20);items.put("C", 30);items.put("D", 40);items.put("E", 50);items.put("F", 60);}public static void main(String[] args) {//Java8之前遍历是这样遍历mapfor(Map.Entry<String,Integer> entry:items.entrySet()){System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());}//Java8遍历mapitems.forEach((key,value)-> System.out.println("key:" + key + " value:" + value));}
}

3.Groupingby操作

/*** *Java8 Collectors.groupingBy and Collectors.mapping example*/
public class ExampleMapping {private static List<Person> personList = Lists.newArrayList();static {personList.add(Person.builder().id(10).address("apple").address("shanghai").build());personList.add(Person.builder().id(12).address("apple").address("wuhan").build());personList.add(Person.builder().id(16).address("apple").address("nanjing").build());}public static void main(String[] args) {//分组Map<String, List<Person>> collect = personList.stream().collect(Collectors.groupingBy(c -> c.getAddress()));System.out.println(collect);}
}

4.List转换为Map

public class ExampleListConvertMap {private static List<Person> personList = Lists.newArrayList();static{personList.add(Person.builder().id(20).name("zhangsan").address("shanghai").build());personList.add(Person.builder().id(30).name("lisi").address("nanjing").build());}public static void main(String[] args) {//Java8 List转换MapMap<Integer,Person> map_ = personList.stream().collect(Collectors.toMap((key->key.getId()),(value->value)));map_.forEach((key,value)-> System.out.println(key + ":" + value));Map<Integer, Person> mappedMovies = personList.stream().collect(  Collectors.toMap(Person::getRank, Person::getData)); }
}

收集成实体本身map

代码如下:

accounts.stream().collect(Collectors.toMap(Account::getId, account -> account)); 

account -> account是一个返回本身的lambda表达式,其实还可以使用Function接口中的一个默认方法代替,使整个方法更简洁优雅:

accounts.stream().collect(Collectors.toMap(Account::getId, Function.identity())); 

重复key的情况

代码如下:

accounts.stream().collect(Collectors.toMap(Account::getUsername, Function.identity())); 

这个方法可能报错(java.lang.IllegalStateException: Duplicate key),因为name是有可能重复的。toMap有个重载方法,可以传入一个合并的函数来解决key冲突问题:

accounts.stream().collect(Collectors.toMap(Account::getUsername, Function.identity(), (key1, key2) -> key2));

这里只是简单的使用后者覆盖前者来解决key重复问题。

指定具体收集的map

toMap还有另一个重载方法,可以指定一个Map的具体实现,来收集数据:

accounts.stream().collect(Collectors.toMap(Account::getUsername, Function.identity(), (key1, key2) -> key2, LinkedHashMap::new))

 

5.FilterMap操作

public class ExampleFilterMap {private static Map<Integer,String> map_ = Maps.newHashMap();static{map_.put(1, "linode.com");map_.put(2, "heroku.com");map_.put(3, "digitalocean.com");map_.put(4, "aws.amazon.com");}public static void main(String[] args) {//before java iterator mapString result = null;for(Map.Entry<Integer,String> entry:map_.entrySet()){if("heroku.com".equals(entry.getValue())){result = entry.getValue();}}System.out.println("Before Java 8 :" + result);//Java8 Map->Stream->Filter->Stringresult =  map_.entrySet().stream().filter(map->"heroku.com".equals(map.getValue())).map(map->map.getValue()).collect(Collectors.joining());System.out.println("Java 8 :" + result);Map<Integer,String> collect =  map_.entrySet().stream().filter(c->c.getKey()==2).collect(Collectors.toMap(p->p.getKey(),p->p.getValue()));System.out.println(collect);}
}

6.Optional操作可以防止NullPointException

Optional<String> optional = Optional.of("hello");
System.out.println(optional.isPresent());//true
System.out.println(optional.get());//hello
System.out.println(optional.orElse("false"));
optional.ifPresent((s)-> System.out.println(s.charAt(0)));//h

 

7.给出一个详细的例子

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Employee {private String name;private int salary;private String office;
}
public class ExampleEmployee {private static List<Employee> employeeList = Lists.newArrayList();static{employeeList.add(Employee.builder().name("Matt").salary(5000).office("New York").build());employeeList.add(Employee.builder().name("Steve").salary(6000).office("London").build());employeeList.add(Employee.builder().name("Carrie").salary(20000).office("New York").build());employeeList.add(Employee.builder().name("Peter").salary(7000).office("New York").build());employeeList.add(Employee.builder().name("Pat").salary(8000).office("London").build());employeeList.add(Employee.builder().name("Tammy").salary(29000).office("Shanghai").build());}public static void main(String[] args) {//anyMatchboolean isMatch = employeeList.stream().anyMatch(employee -> employee.getOffice().equals("London"));System.out.println(isMatch);//返回所有salary大于6000boolean matched = employeeList.stream().allMatch(employee -> employee.getSalary()>4000);System.out.println(matched);//找出工资最高Optional<Employee> hightestSalary = employeeList.stream().max((e1,e2)->Integer.compare(e1.getSalary(),e2.getSalary()));System.out.println(hightestSalary);//返回姓名列表List<String> names = employeeList.stream().map(employee -> employee.getName()).collect(Collectors.toList());System.out.println(names);//List转换成MapMap<String,Employee> employeeMap = employeeList.stream().collect(Collectors.toMap((key->key.getName()),(value->value)));employeeMap.forEach((key,value)-> System.out.println(key + "=" + value));//统计办公室是New York的个数long officeCount = employeeList.stream().filter(employee -> employee.getOffice().equals("Shanghai")).count();System.out.println(officeCount);//List转换为SetSet<String> officeSet = employeeList.stream().map(employee -> employee.getOffice()).distinct().collect(Collectors.toSet());System.out.println(officeSet);//查找办公室地点是New York的员工Optional<Employee> allMatchedEmployees = employeeList.stream().filter(employee -> employee.getOffice().equals("New York")).findAny();System.out.println(allMatchedEmployees);//按照工资的降序来列出员工信息List<Employee> sortEmployeeList =  employeeList.stream().sorted((e1,e2)->Integer.compare(e2.getSalary(),e1.getSalary())).collect(Collectors.toList());//按照名字的升序列出员工信息List<Employee> sortEmployeeByName = employeeList.stream().sorted((e1,e2)->e1.getName().compareTo(e2.getName())).collect(Collectors.toList());System.out.println(sortEmployeeList);System.out.println("按照名字的升序列出员工信息:" + sortEmployeeByName);//获取工资最高的前2条员工信息List<Employee> top2EmployeeList= employeeList.stream().sorted((e1,e2)->Integer.compare(e2.getSalary(),e1.getSalary())).limit(2).collect(Collectors.toList());System.out.println(top2EmployeeList);//获取平均工资OptionalDouble averageSalary = employeeList.stream().mapToInt(employee->employee.getSalary()).average();System.out.println("平均工资:" + averageSalary);//查找New YorkOptionalDouble averageSalaryByOffice = employeeList.stream().filter(employee -> employee.getOffice().equals("New York")).mapToInt(employee->employee.getSalary()).average();System.out.println("New York办公室平均工资:" + averageSalaryByOffice);}
}

 

8.Java8常见操作


public class EmployeeTest {public static List<Employee> generateData() {return Arrays.asList(new Employee("Matt", 5000, "New York"),new Employee("Steve", 6000, "London"),new Employee("Carrie", 10000, "New York"),new Employee("Peter", 7000, "New York"),new Employee("Alec", 6000, "London"),new Employee("Sarah", 8000, "London"),new Employee("Rebecca", 4000, "New York"),new Employee("Pat", 20000, "New York"),new Employee("Tammy", 9000, "New York"),new Employee("Fred", 15000, "Tokyo"));}public static Map<String, Integer> generateMapData() {Map<String, Integer> items = Maps.newHashMap();items.put("A", 10);items.put("B", 20);items.put("C", 30);items.put("D", 40);items.put("E", 50);items.put("F", 60);return items;}@Testpublic void testEmployee() {List<Employee> results = generateData();//打印出名字是Steve的员工信息results.forEach(c -> {if (c.getName().equals("Steve")) {System.out.println(c);}});System.out.println("---------");//找出年薪超过6000的员工results.stream().filter(c -> c.getSalary() >= 60000).forEach(c -> System.out.println(c));System.out.println("--->>>>>>----");//java8遍历mapMap<String, Integer> map_ = generateMapData();map_.forEach((key, value) -> System.out.println("key:" + key + "," + "value:" + value));System.out.println("---->>>>分组>>>-----");//java8 分组操作Map<String, List<Employee>> groupMap = results.stream().collect(Collectors.groupingBy(c -> c.getOffice()));System.out.println(groupMap);System.out.println("---->>>>List转化为Map>>>----");//List转化MapMap<String, Object> map = results.stream().collect(Collectors.toMap(Employee::getName, Employee::getOffice));map.forEach((key, value) -> System.out.println("key:" + key + "," + "value:" + value));System.out.println("---->>>>>>>----");Map<Integer, Employee> employeeMap = results.stream().collect(Collectors.toMap((key -> key.getSalary()), (value -> value)));employeeMap.forEach((key, value) -> System.out.println(key + "," + value));System.out.println("---->>遍历map>>>----");//打印出值大于30的mapMap<String, Integer> resultMap = map_.entrySet().stream().filter(c -> c.getValue() > 30).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));resultMap.forEach((key, value) -> System.out.println(key + "=" + value));System.out.println(">>>>>>>>>>>>>>>");//打印key=D的mapMap<String, Integer> mapResults = map_.entrySet().stream().filter(c -> c.getKey().equals("D")).collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));mapResults.forEach((key, value) -> System.out.println(key + ">>>>" + value));System.out.println(">>>>>>>Optional>>>>>>>");Optional<String> optional = Optional.of("hello");System.out.println(optional.isPresent());}@Testpublic void testEmployeeExample() {//anyMatchList<Employee> employeeList = generateData();boolean isMatch = employeeList.stream().anyMatch(employee -> employee.getOffice().equals("London"));System.out.println(isMatch);//allMatchboolean matched = employeeList.stream().allMatch(employee -> employee.getOffice().equals("London"));System.out.println(matched);//找出工资最高的Optional<Employee> employeeOptional = employeeList.stream().max((e1,e2)->Integer.compare(e1.getSalary(),e2.getSalary()));System.out.println(employeeOptional);//找出工资最少的Optional<Employee> employee = employeeList.stream().min((e1,e2)->Integer.compare(e1.getSalary(),e2.getSalary()));System.out.println(employee);//返回姓名列表List<String> names = employeeList.stream().map(c->c.getName()).collect(Collectors.toList());System.out.println(names);System.out.println(">>>>>>>>>>>");//List转化MapMap<String,Employee> employeeMap = employeeList.stream().collect(Collectors.toMap((key->key.getName()),(value->value)));employeeMap.forEach((key,value)-> System.out.println(key + "=" + value));//统计办公室是New York的个数long officeCount =  employeeList.stream().filter(c->c.getOffice().equals("New York")).count();System.out.println(officeCount);long salaryCount = employeeList.stream().filter(c->c.getSalary()>60000).count();System.out.println(salaryCount);//List转化为SetSet<String> officeSet = employeeList.stream().map(c->c.getOffice()).distinct().collect(Collectors.toSet());System.out.println(officeSet);Set<Integer> salarySet = employeeList.stream().map(c->c.getSalary()).distinct().collect(Collectors.toSet());System.out.println(salarySet);//查找办公室地点是New York的员工Optional<Employee> optionals = employeeList.stream().filter(c->c.getOffice().equals("New York")).findAny();System.out.println(optionals);System.out.println(">>>>>工资降序排序>>>>>");//按照工资的降序来列出员工信息List<Employee> sortSalaryEmployeeList = employeeList.stream().sorted((e1,e2)->Integer.compare(e2.getSalary(),e1.getSalary())).collect(Collectors.toList());System.out.println(sortSalaryEmployeeList);System.out.println(">>>>>姓名升序排序>>>>>");List<Employee> sortNameEmployeeList = employeeList.stream().sorted((e1,e2)->e1.getName().compareTo(e2.getName())).collect(Collectors.toList());System.out.println(sortNameEmployeeList);System.out.println(">>>>获取工资最高的前2条员工信息");List<Employee> dispaly2EmployeeList = employeeList.stream().sorted((e1,e2)->Integer.compare(e2.getSalary(),e1.getSalary())).limit(2).collect(Collectors.toList());System.out.println(dispaly2EmployeeList);System.out.println(">>>>获取平均工资");OptionalDouble averageSalary = employeeList.stream().mapToInt(c->c.getSalary()).average();System.out.println(averageSalary);System.out.println(">>>>获取工作地点的平均工资");OptionalDouble optionalDouble = employeeList.stream().filter(c->c.getOffice().equals("New York")).mapToInt(c->c.getSalary()).average();System.out.println(optionalDouble);System.out.println(">>>>>>Java8 Optional用法>>>>>>");Optional<String> stringOptional = Optional.of("test");System.out.println(stringOptional.get());Optional<String> isOptional = Optional.ofNullable("hello");System.out.println(isOptional.isPresent());System.out.println(isOptional.get());System.out.println(isOptional.orElse("0"));System.out.println(">>>>>>>>>>>>");//Optional<String> optionalVal = Optional.of(null);// System.out.println(optionalVal);Optional<String> optional = Optional.ofNullable("optional");System.out.println(optional);System.out.println(optional.isPresent());System.out.println(optional.get());System.out.println(optional.orElse("haha"));System.out.println(">>>>>>>>>>>>");Optional<Employee> employeeOptional_ = employeeList.stream().filter(c->c.getOffice().equals("New York")).findFirst();System.out.println(employeeOptional_);}
}

 

http://www.wooajung.com/news/34549.html

相关文章:

  • 潍坊地区制作网站营业推广策划方案
  • 对网站建设的问题百度竞价开户
  • 游戏网页设计素材企业搜索引擎优化
  • 网站首页用什么字体好seo网站建设优化什么意思
  • wordpress设置略缩图外链图片手机端seo
  • 番禺网站建设多少钱最新的域名网站
  • 做外贸的阿里巴巴网站是哪个好广州seo成功案例
  • 网站建设设seo网络优化平台
  • 中国建设委员会官网站360收录
  • 网站建设公司客户开发手册企业网站seo方案
  • 网站后台怎么建设360建站官网
  • 嘉定网站建设哪家便宜seo平台
  • macbook做网站windows7优化大师官方下载
  • 深圳企业做网站seo服务哪家好
  • 网站建设 新手从郑州网站运营专业乐云seo
  • 网上开店的货源渠道有哪些seo独立站
  • 兰州装修公司口碑排名seo排名优化有哪些
  • 青岛网景互联网站建设公司公司页面设计
  • 沈阳建设公司网站合肥网站制作推广
  • 深圳网站建公司seo运营是做什么的
  • 南阳网站排名优化报价河南网站建设哪个公司做得好
  • 帝国cms做英文网站网络服务电话
  • python 网站开发 saeseo指什么
  • 如何做电影网站挣钱搜索引擎是什么意思啊
  • 广西商城网站建设线上推广引流渠道
  • 乡村旅游网站的建设分析百度热搜榜在哪里看
  • 昌平网站建设浩森宇特广东东莞疫情最新情况
  • 创建免费网站百度权重怎么看
  • 工商注册查询官网重庆seo网站系统
  • 地下城钓鱼网站如何做合肥推广外包公司