lambda表达式实战
来源:互联网 发布:小米官网和淘宝旗舰店 编辑:程序博客网 时间:2024/06/09 19:54
/** * ClassName:LambdaInAction <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON. <br/> * Date: 2017年9月10日 下午8:12:49 <br/> * * @author: Lelonta * @version * @see */public class LambdaInAction {// @Test public void map() { //转换 String queryString = "name=lelonta&id=100000&password=123456"; Map<String, String> map = Stream.of(queryString.split("&")) .map(str -> str.split("=")) .collect(Collectors.toMap(str -> str[0], str -> str[1])); System.out.println("map=" + map); } // str -> str.split("=") public String[] getSplit(String str) { return str.split("="); }// @Test public void getId() { List<Integer> list = books().stream().map(book -> book.getId()) .collect(Collectors.toList()); System.out.println("list=" + list); list = books().stream().map(Book::getId).collect(Collectors.toList()); System.out.println("list=" + list); String str = books().stream().map(book -> book.getId() + "") .collect(Collectors.joining(",")); System.err.println("str=" + str); }// @Test public void getType() { List<String> list = books().stream().map(book -> book.getType()) .collect(Collectors.toList()); System.out.println("list=" + list); list = books().stream().map(book -> book.getType()).distinct() .collect(Collectors.toList()); System.out.println("去重后的list=" + list); } public void setOrder() { // 价格从低到高 // books().stream() // .sorted((book1, book2) -> Double.compare(book1.getPrice(), // book2.getPrice())).forEach(System.out::println); // 从高到低 Comparator<Book> comparator = (book1, book2) -> Double.compare( book1.getPrice(), book2.getPrice()); books().stream().sorted(comparator.reversed()) .forEach(System.out::println); // 简化的方法 books().stream().sorted(Comparator.comparing(Book::getPrice)) .forEach(System.out::println); } // 多条件排序 public void setOrderCom() { Comparator<Book> comparator = (book1, book2) -> Double.compare( book1.getPrice(), book2.getPrice()); books().stream() .sorted(comparator.thenComparing((book1, book2) -> book1 .getPublishDate().isAfter(book2.getPublishDate()) ? 1 : -1)).forEach(System.out::println); books().stream() .sorted(Comparator.comparing(Book::getPrice).thenComparing( Comparator.comparing(Book::getPublishDate))) .forEach(System.out::println); } public void bookToMap() { Map<Integer, Book> map = books().stream().collect( Collectors.toMap(book -> book.getId(), book -> book)); System.out.println(map); }// @Test public void avage() { Double d = books().stream().collect( Collectors.averagingDouble(Book::getPrice)); System.out.println(d); }// @Test public void maxormin() { Optional<Book> bookOptional = books().stream().collect( Collectors.maxBy(Comparator.comparing(Book::getPrice))); System.out.println(bookOptional); bookOptional = books().stream().collect( Collectors.minBy(Comparator.comparing(Book::getPrice))); System.out.println(bookOptional); }// @Test public void group() { // 按类型分组 Map<String, List<Book>> map = books().stream().collect( Collectors.groupingBy(Book::getType)); map.keySet().forEach(key -> { System.out.println(key); System.out.println(map.get(key)); System.out.println("---------------------------"); }); } // 统计数量// @Test public void count() { Map<String, Long> map = books().stream().collect( Collectors.groupingBy(Book::getType, Collectors.counting())); System.out.println(map); }// @Test public void sum() { // 每种类型的总价格 Map<String, Double> d = books().stream().collect( Collectors.groupingBy(Book::getType, Collectors.summingDouble(Book::getPrice))); System.out.println(d); }// @Test public void high() { // 每种类型最贵的 Map<String, Optional<Book>> d = books().stream() .collect( Collectors.groupingBy(Book::getType, Collectors .maxBy(Comparator.comparing(Book::getPrice)))); System.out.println(d); }// @Test public void filter() { books().stream().filter(book -> book.getPrice() >= 50) .sorted(Comparator.comparing(Book::getPublishDate).reversed()) .forEach(System.out::println); } private List<Book> books() { List<Book> books = new ArrayList<Book>(); books.add(new Book(1, "java", 50, "java", LocalDate.parse("2017-09-10"))); books.add(new Book(2, "python", 51, "python", LocalDate .parse("2017-09-10"))); books.add(new Book(3, "jsp", 52, "jsp", LocalDate.parse("2017-09-10"))); books.add(new Book(4, "php", 53, "php", LocalDate.parse("2017-09-10"))); books.add(new Book(5, "js", 54, "js", LocalDate.parse("2017-09-10"))); return books; } public static void main(String[] args) { String queryString = "name=lelonta&id=100000&password=123456"; Map<String, String> map = Stream.of(queryString.split("&")) .map(str -> str.split("=")) .collect(Collectors.toMap(str -> str[0], str -> str[1])); System.out.println("map=" + map);//map={password=123456, name=lelonta, id=100000} String queryString1 = "name=lelonta&id=100000&password=123456"; String[] str = queryString.split("&");// System.out.println(str); Map map1 = new HashMap(); for (String str1:str) {// System.out.println(str1); String[] str2 = str1.split("="); map.put("key",str2[0]); map.put("value",str2[1]); } System.out.println(map); }}
阅读全文
0 0
- lambda表达式实战
- java8实战二:Lambda 表达式
- 实战Lambda表达式-动态构建
- Java8 实战学习 — Lambda 表达式
- Java 8 实战 -- lambda表达式 (一)
- Lambda Expressions(Lambda表达式)
- Lambda表达式
- Lambda表达式
- Lambda 表达式
- Lambda表达式
- lambda表达式
- lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda表达式
- Lambda 表达式
- Lambda表达式
- 论“取势、明道、优术”的趋势
- Breadth-first Search -- Leetcode problem690. Employee Importance
- CSR-DCF视频目标跟踪论文笔记(1)——关于似然和后验概率在分割操作中的应用
- 关于Android so库的那些事
- AndPermission是一个运行权限管理库,兼容Android O,同时最大程度上兼容了国产机
- lambda表达式实战
- Android 进阶——实现周期性任务调度的几种攻略详解
- Android UI 优化工具--Hierarchy Viewer
- 深入理解Java:注解(Annotation)自定义注解入门
- React Native点击
- 练习 14:包管理:Debian 包管理工具aptitude
- jackson包下载
- webstorm 2017 激活破解
- js 赋值?值类型和引用类型