java8流式操作之映射和拍排序

映射分为 map和 flaterMap两个
map: 接口一个lambda,将元素转换成其他心事或提取信息,即接收一个函数座位参数,该函数会被应用到每个元素上,冰将其映射成一个新的元素

flaterMap-- 接收一个函数作为参数,将流中的每个值都换成流另外一个流,然后把所有的流都连城一个流。

@Test
	public void testMap(){
		//将数据转换成大写
		List<String> list = Arrays.asList("aaa","bbb","fff","eee","ddd","ccc");
		list.stream().map((str) -> str.toUpperCase()).forEach(System.out::println);
	}
	@Test
	public void testFlaterMap(){
		//获取集合中的每个字母
		List<String> list = Arrays.asList("aaa","bbb","fff","eee","ddd","ccc");
//		Stream<Stream<Character>> stream = list.stream().map(StreamTest2::getChar);
//		stream.forEach((sm) ->{ sm.forEach(System.out::println);});
		
//		list.stream()
//			.map(StreamTest2::getChar)
//			.forEach((sm) ->{ sm.forEach(System.out::println);});
		
		list.stream()
			.flatMap(StreamTest2::getChar)
			.forEach(System.out::println);
		
	}
	
	public static  Stream<Character> getChar(String str){
		List<Character> list = new ArrayList<>();
		for(int i= 0 ; i <str.length() ; i++){
			list.add(str.charAt(i));
		}
		return list.stream();
	}

2)排序

/**
	 * 排序
	 * sorted() -- 自然排序,是指使用实现了 Comparable接口中  compareTo方法的排序
	 * sorted(Comparator<? super T> comparator) 定制排序
	 */
    @Test
    	public void testSorted(){
    		List<String> list = Arrays.asList("aaa","bbb","fff","eee","ddd","ccc");
    		list.stream()
    			.sorted()
    			.forEach(System.out::println);
    		
    		
    		emps.stream()
    			.sorted((e1,e2) ->{
    				if(e1.getAge()==e2.getAge()){
    					return e1.getName().compareTo(e2.getName());
    				} else {
    					return Integer.compare(e1.getAge(),e2.getAge());
    				}
    			})
    			.forEach(System.out::println);;
    	}

猜你喜欢

转载自blog.csdn.net/u012224510/article/details/84773780