Java/Java

스트림 reduce

MDanderson 2022. 10. 22. 04:20

배열에서 가장 긴/짧은 글자를 뽑을 때 사용

 

import java.util.Arrays;
import java.util.function.BinaryOperator;

class Compare implements BinaryOperator<String>{

	@Override
	public String apply(String s1, String s2) {
		
			if(s1.getBytes().length < s2.getBytes().length) return s1;
			else return s2;
		}
	}

public class Reduce {

	public static void main(String[] args) {
		String[] arr = {"안녕하세요~~~~","hello","안냐세요"};
		
		System.out.println( Arrays.stream(arr).reduce("",(s1, s2) -> 
		s1.getBytes().length > s2.getBytes().length ?  s1:s2 ) );
		
        
		System.out.println(Arrays.stream(arr).reduce("", (s1,s2)->{
			if(s1.getBytes().length > s2.getBytes().length) return s1;
			else return s2;})
		);
		
        
        
		System.out.println( Arrays.stream(arr).reduce(new Compare()).get()
		);
		


	}

}