Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 출처:구멍가게코딩단-코배스(개정판)
- while문이 틀린이유?? math.random()을 사용해서푸는법?
- (참고로 boolean 배열의 default 값은 false 이다.
- bindingresult 쓰니까 에러났다. 어떻게해야하냐;;
- ㅓㅂ
- 생활코딩
- form.getImageFies 오타났음
- 행열. 2중반복문..
- 그럼 int배열의 deefault값은?????
- 마지막에 배열의 foreach구문이 틀린것같은데 ...... 저게왜틀린건지나는잘모르겠슴다.
- boolean배열
Archives
- Today
- Total
푸린세스
Predicate의 결합, Function의 합성 Ex14_3 본문
package ex14;
import java.util.function.Function;
import java.util.function.Predicate;
//자바정석3판
public class Ex14_3 {
public static void main(String[] args) {
//String 입력 Integer출력
Function<String, Integer> f = (s) -> Integer.parseInt(s,16);
//Integer입력 String 출력
Function<Integer, String> g = (i) -> Integer.toBinaryString(i);
//하나로 합칠 수 있다. 함수 f, 함수 g
//2개를 마치 하나인것처럼 연결 -> andThen :f를적용하고 나서 g를 적용하라
//f의 출력 = g의 입력 같아야 연결가능
//새로운 함수 h로 만듬
//h의 입력, h의 출력
Function<String,String> h = f.andThen(g); //함수 2개 연결
Function<Integer, Integer> h2 = f.compose(g); //g.andThen(f)
//함수결합방법 두가지. f->g or g->f compose몰라도 됨 g.andthen(f)쓰면된다.
System.out.println(h.apply("FF"));//FF->16진수로 해석 :255 -> 2진수문자열로 :1111111
System.out.println(h2.apply(2));//2 -> 10 -> 16진수로해석 16
Function<String, String> f2 = x -> x;//항등함수(identity function)
System.out.println(f2.apply("AAA"));//하는일이없다.입력받은값을 그대로줌
Predicate<Integer> p = i -> i <100; //입력을 Integer로 받음.결과를 boolean으로
Predicate<Integer> q = i -> i <200;
Predicate<Integer> r = i -> i%2 == 0;
Predicate<Integer> notP = p.negate();//not, i>=100
Predicate<Integer> all = notP.and(q.or(r)); //(i>=100 %% (i<200||i%2==0))
System.out.println(all.test(150)); // 150>=100 T && (T || T)
// T && T -> T
String str1 = new String("abc");
String str2 = new String("abc");
//true라는 것은 등가비교연산자 안쓰고 equals메소드쓴다..
Predicate<String> p2 = Predicate.isEqual(str1);
//boolean result = str1.equals(str2);
boolean result = Predicate.isEqual(str1).test(str2);
System.out.println(result); //true "abc"=="abc"
// new String("abc") == "abc" false
//주소비교 false임,
}
}