package day06; import org.junit.Test; import javax.swing.text.Keymap; import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; /** * @auther hhh * @date 2019/1/3 22:07 * @description */ public class LambdaCombat { /** * lambda 表达式、方法的引用、Stream API实战 */ /** * index.do?itemId=1&userId=1000&type=20&token=111111&key=index */ @Test public void test1() { //将字符串转化为map String s = "index.do?itemId=1&userId=1000&type=20&token=111111&key=index"; //转化为map,key为数组第0个,value为数组第一个,toMap有两个Function参数,以下代码代表输入一个数组输出一个数组中的值 Map<String, String> map = Stream.of(s.split("&")).map(str -> str.split("=")).collect(Collectors.toMap(arr -> arr[0], arr -> arr[1])); System.out.println(map);//{type=20, userId=1000, index.do?itemId=1, key=index, token=111111} } private List<Book> bookTest(){ List<Book> list = new ArrayList<>(); //Integer id, String name, BigDecimal price, String type, LocalDate pulishDate list.add(new Book(1,"书1",new BigDecimal(25.6),"分类一", LocalDate.now().plusDays(10))); list.add(new Book(2,"书2",new BigDecimal(25.6),"分类一", LocalDate.now().plusDays(15))); list.add(new Book(3,"书3",new BigDecimal(25.6),"分类一", LocalDate.now().plusMonths(1))); list.add(new Book(4,"书4",new BigDecimal(25.6),"分类二", LocalDate.now().plusMonths(2))); list.add(new Book(5,"书5",new BigDecimal(25.6),"分类二", LocalDate.now().plusMonths(4))); list.add(new Book(6,"书6",new BigDecimal(25.6),"分类二", LocalDate.now().plusYears(1))); list.add(new Book(7,"书7",new BigDecimal(25.6),"分类三", LocalDate.now().minusYears(1))); list.add(new Book(8,"书8",new BigDecimal(25.6),"分类三", LocalDate.now().plusYears(2))); list.add(new Book(9,"书9",new BigDecimal(25.6),"分类四", LocalDate.now().minusYears(2))); list.add(new Book(10,"书10",new BigDecimal(25.6),"分类四", LocalDate.now().minusMonths(3))); return list; } @Test public void test2(){ //取出所有book的ID放到List中 List<Book> books = this.bookTest(); List<Integer> list = books.stream().map(book -> book.getId()).peek(System.out::println).collect(Collectors.toList()); System.out.println(list);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] //使用方法的引用 List<Integer> ids = books.stream().map(Book::getId).peek(System.out::println).collect(Collectors.toList()); System.out.println(ids);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] //取出ID以后其使用,分割,转化为一个字符串,先将其转成字符串,然后使用 , 拼接 String s = books.stream().map(book -> book.getId().toString()).collect(Collectors.joining(",")); System.out.println(s);//1,2,3,4,5,6,7,8,9,10 String s1 = books.stream().map(book -> book.getId().toString()).collect(Collectors.joining(",","(",")"));//表示在最前面加一个括号在最后面加一个括号 System.out.println(s1);//(1,2,3,4,5,6,7,8,9,10) String s2 = books.stream().map(book -> "'"+book.getId()+"'").collect(Collectors.joining(",","(",")")); System.out.println(s2);//('1','2','3','4','5','6','7','8','9','10') 每个字符使用单引号割开 } }
Lambda实战
猜你喜欢
转载自www.cnblogs.com/huanghuanghui/p/10217471.html
今日推荐
周排行