내일배움캠프 11일차 TIL _ 3주 3일차
2024. 5. 1. 23:10ㆍTIL Java
- 오늘 있었던 일
- 들었던 강의 중 이해하기 어려웠던 부분을 다시 들었다.
- 복습
더보기
스트림 ( Stream )
- Stream API
- 과정
- 생성
- 스트림 객체생성
- 제사용이 불가하니 필요시 제작해야함
- 가공
- 데이터로 가공
- 연산 결과를 Stream으로 반환
- 결과 제작
- 결과를 만들기 위한 최종 연산
- 제사용 불가
- 생성
- 과정
이해하기 어려웠던건 2-2로 결과를 반환한다는 게 뭔지 몰랐지만 복습으로 몇 번 써보고 나니 알게 됐다.
[Java] Stream API에 대한 이해 - (1/5)
1. Stream API에 대한 이해 [ Stream API에 대한 소개 ] Java는 객체지향 언어이기 때문에 기본적으로 함수형 프로그래밍이 불가능하다. (함수형 프로그래밍에 대해 이해가 부족하다면 이 글을 참고하길
mangkyu.tistory.com
람다식
- 람다식의 특징
- 람다 대수는 이름을 가질 필요가 없다. - 익명 함수 (Anonymous functions)
- 익명함수란 말그대로 함수의 이름이 없는 함수입니다. 익명함수들은 공통으로 일급객체(First Class citizen)라는 특징을 가지고 있습니다.
- 일급 객체란 일반적으로 다를 객체들에 적용 가능한 연산을 모두 지원하는 개체를 가르킵니다. 함수를 값으로 사용 할 수도 있으며 파라메터로 전달 및 변수에 대입 하기와 같은 연산들이 가능합니다.
- 익명함수란 말그대로 함수의 이름이 없는 함수입니다. 익명함수들은 공통으로 일급객체(First Class citizen)라는 특징을 가지고 있습니다.
- 람다 대수는 이름을 가질 필요가 없다. - 익명 함수 (Anonymous functions)
- 장단점
- 장점
- 코드 간결화
- 불필요한 반복문의 삭제가 가능하며 복잡한 식을 단순하게 표현할 수 있다.
- 지연연산
- 지연연상을 수행 함으로써 불필요한 연산을 최소화
- 병렬처리
- 멀티 쓰레드로 병렬처리 가능
- 코드 간결화
- 단점
- 호출이 까다로움
- 스트림사용시 반복문의 성능하락 위험성
- 장점
- 표현법
- ( -> ) 으로 사용함
- 단일 실행문일시 중괄호{} 생략가능
- 리턴 실행시 중괄호{} 생략 불가능
() -> {}
// 단일 실행시 중괄호 제거가능
() -> 99
// return 시제거불가
() -> { return 1; }
// 단축 과정
(int a) -> a+5
(a) -> a+5
a -> a+5
// 리턴시 중괄호 제거불가
a -> { return a+5; }
//변수와 같이 선언하지 않은 값은 사용 불가능
(num1, int num2) -> num1+num2
// 옳은값
= (int num1, int num2) -> num1+num2
[Java] 람다식(Lambda Expression)과 함수형 인터페이스(Functional Interface) - (2/5)
1. 람다식(Lambda Expression) 이란? Stream 연산들은 매개변수로 함수형 인터페이스(Functional Interface)를 받도록 되어있다. 그리고 람다식은 반환값으로 함수형 인터페이스를 반환하고 있다. 그렇기 때문
mangkyu.tistory.com
- 알고리즘 어려웠던 것
더보기
행렬의 덧셈
int a = arr1.length;
int b = arr1[0].length;
int[][] answer = new int[a][b];
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
}
System.out.println(Arrays.deepToString(answer));
- 배열은 이제 자주하기도 했고 문제도 많이 풀어서 할만하다 생각했는데 2차원은 오랜만이라 어떻게 풀지 한참을 고민하고 여러 수를 써봤는데 결국 처음으로 돌아왔다. 컬렉션 말도 배열도 복습해봐야겠다.
10 진수 -> n진수
System.out.println("10진수 -> 2진수");
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toString(a,2));
// 16진수 이전까지는 동일 방법
System.out.println("10진수 -> 7진수");
System.out.println(Integer.toString(a,7));
System.out.println("10진수 -> 16진수");
System.out.println(Integer.toString(a,16));
System.out.println(Integer.toHexString(a))
// 10 진수로 바꾸는 방법
System.out.println("2진수 -> 10진수");
System.out.println(Integer.parseInt(a,3));
System.out.println("3진수 -> 10진수");
System.out.println(Integer.parseInt(a,3));
System.out.println("4진수 -> 10진수");
System.out.println(Integer.parseInt(a,4));
System.out.println("5진수 -> 10진수");
System.out.println(Integer.parseInt(a,5));
- 이런것도 있구나 하고 신기했다, 결국 모든 값은 바이트 치완값이니 필요할듯 하다
당일 회고
- 자바의 복습 및 정리는 오늘까지다. 이제 더 배울 시간이다.
'TIL Java' 카테고리의 다른 글
내일배움캠프 13일차 TIL _ 3주 5일차 (0) | 2024.05.03 |
---|---|
내일배움캠프 12일차 TIL _ 3주 4일차 (1) | 2024.05.02 |
내일배움캠프 10일차 TIL _ 3주 2일차 (0) | 2024.04.30 |
내일배움캠프 9일차 TIL _ 3주 1일차 (0) | 2024.04.29 |
내일배움캠프 8일차 WIL _ 2주 7일차 (1) | 2024.04.28 |