어? 이게 되네
2022.06.30. 목요일 이공계 전문기술 연수사업 (제네릭, 람다식, 스트림) 본문
오늘 배운 것
제네릭 - 컬렉션 프레임워크를 쓸 때 자료형을 명시함
wrapper 클래스 ( 기본 자료형을 객체화 시켜주는 클래스)
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
람다식
모던스크립트에서 이름없는 함수, 화살표 함수를 사용한 것처럼
자바에서도 이름없는 함수나 화살표 함수를 사용할 수 있는데 이것을 람다식이라고 함!
쓰레드
가능하면 두 개 이상의 메소드가 동시에 실행되도록 스케쥴링 해주는 기술
(멀티쓰레드)
class MyThread extends Thread{
public void run(){
~~~~
}
}
MyThread a = new MyThread();
MyThread b = new MyThread();
a.start();
b.start();
------------------------------------------------------------------------------------------------------------------
람다식
class MyThread implements Runnable(){
public void run(){
~~~~~~~~
}
}
MyThread t1=new MyThread();
(new Thread(t1)).start();
----------------------------------------------------------------------------------------------------------------------------------
함수형 인터페이스
이제 이 함수형 인터페이스를 람다식 사용해서 구현해볼 것임 !
이제 반환값이 있는 함수형 인터페이스
자바가 기본적으로 제공해주는 함수형 인터페이스
java.util.function (Java Platform SE 8 ) (oracle.com) 참고
IntFunction => int값을 매개변수로 전달받아 결과값을 다양한 자료형으로 반환하는 메소드
반환값을 제네릭으로 사용자가 맘대로 자료형 설정 가능 !
아하 메소드 이름을 알 필요가 없으니 람다식에 사용되는 함수형 인터페이스는 메소드가 무조건 하나구나
함수형 인터페이스도 그렇고 msa도 그렇고 하나 안에 다 정의하지 않고 하나의 기능 안에 하나만 오도록 분리시킴
요즘 트렌드인가..?
또, 자바가 기본으로 제공해주는 함수형 인터페이스
Binary Operator
두 개의 매개변수를 전달받아 어떠한 처리를 하여 반환하는 메소드를 정의함
(단, 매개변수의 자료형과 반환값의 자료형은 일치해야 함!!!)
-----------------------------------------------------------------------------------------------------------------------------------
스트림
모던스크립트에서 map, filter함수가 있듯이 자바에도 스트림을 통한 map, filter함수가 있음
또한 람다식과 함께 사용 가능
map : 컬렉션의 데이터 수만큼 반복하여 어떠한 일을 수행하여 반환하도록 할 때 사용
컬렉션명.stream.map((하나씩꺼내올변수명)->{return 반환값;})
그럼 이건 컬렉션에 있는 데이터 수만큼 동작함!!!
또는 간단하다면 컬렉션명.stream.map(변수명->반환값)
이 때 반환값의 자료형은 stream이고 이것을 list로 받아 오기 위해서는
컬렉션명.stream.map(변수명->반환값).collect(Collectors.toList());
filter : 컬렉션이 데이터 수만큼 반복하여 조건을 만족하는 요소만 추출
컬렉션명.stream.filter(변수명->조건식)
sorted : 컬렉션의 요소 정렬
//여기까지는 매개변수가 하나씩 옴 !!!
//map이나 다른 것은 나만 가지고 연산을 하지만
//reduce는 나와 내 앞에 있는 원소와 무언가 연산을 해야할 때 씀 !
reduce : 컬렉션의 요소를 차례로 두 개씩 매개변수로 받아 연산결과를 반환함
연산결과는 다시 다음 요소의 첫 번째 매개변수로 들어감
이거 내가 맨날 헷갈려하는 상황 !!!!!!!!!!!!!
stream의 map 메소드는 매개변수 하나 받아서 반환하는 값의 개수는 원래 루프도는 list의 갯수 만큼 반환하고
stream의 filter 메소드는 매개변수 하나 받아서 반환하는 값의 개수는 모름 (필터링되어서 적어질 수도 똑같을 수도)
stream의 reduce 메소드는 매개변수 두 개 받아서 반환하는 값의 개수는 딱 하나! (최종연산 값)
에이젝스 파일 업로드
FormData 객체 만들어서 (여기서 제이쿼리 문법 안먹음 @!!)
그다음 에이젝스 통신 통해서 똑같이 하면 됨 !!!
'TIL' 카테고리의 다른 글
2022.07.25. 월요일 이공계 전문기술 연수사업 (기업연수 1일차) (0) | 2022.07.26 |
---|---|
2022.06.16. 목요일 이공계 전문기술 연수사업 (0) | 2022.06.30 |
2022.06.29. 수요일 이공계 전문기술 연수사업 (Git) (0) | 2022.06.29 |
2022.06.28. 화요일 이공계 전문기술 연수사업 (카카오 로그인 API, 아임포트 API, Jsoup, 향상된 자바스크립트 함수) (0) | 2022.06.29 |
2022.06.24. 금요일 이공계 전문기술 연수사업 (Spring DATA JPA로 조인하기, 카카오맵 api) (0) | 2022.06.24 |