TIL

[TIL-39/2310111] 제네릭스, 컬렉션 프레임워크, 람다, 스트림

prao 2023. 10. 12. 01:00
반응형

TIL

저번 주 금요일 운동을 하고 상태가 좋지 않아 지켜보다가 다음날인 토요일에 병원을 들렸는데 "횡문근 융해증"이라는 진단을 받았다.

하필 토요일이여서 횡문근 융해증을 치료할 수 있는 신장 내과가 전부 문을 열지 않아서 어쩔 수 없이 응급실에 갔다.

무리한 운동이 원인이라는 설명을 들었고 수액을 맞다가 퇴원했다.

매일 알고리즘 문제를 1문제 이상 풀고, 1일 1커밋도 140일 이상 이어가고 있었는데 아픈 몸으로 인해 무리하지 말고 쉬었다.

그렇게 며칠간 쉬다가 어제부터 다시 공부를 조금씩 시작하고 있지만 너무 무리하진 않고 조금씩 예전의 공부량으로 돌아가려 한다.

 

오늘은 MVC 공부에 앞서서, 자바를 하면서 계속 만나왔지만 다음으로 미루던 람다식, 스트림, 제네릭스를 제대로 공부하고자 예전에 들었던 나도코딩님의 자바 기본편 인터넷 강의를 복습하고 정리하였다.

 

제네릭스는 아래에 정리하였다.

https://prao.tistory.com/entry/Java-%EC%A0%9C%EB%84%A4%EB%A6%AD%EC%8A%A4Generics

 

[Java] 제네릭스(Generics)

제네릭스(Generics) 정의 다양한 타입의 객체를 지원하는 클래스나 인터페이스 또는 메서드를 정의하는 방법 똑같은 동작을 하는 클래스나 메서드를 여러 번 만들 필요 없이 딱 한 번만 정의한 후

prao.tistory.com

제네릭스가 무엇인지는 알고 있었으나, 어떻게 사용하는지에 대한 이해가 부족했다.

강의를 들으며 예제 코드를 쳐보니 어느정도 감이 잡혔다.

또한 이전까지 아래와 같은 코드를 제대로 이해하지 못했다.

CoffeeByUser<User> c7 = new CoffeeByUser<>(new User("강호동"));

객체 안에 객체를 새로 만드는 구조를 이해하지 못했었는데, 제네릭스로 인해 User 타입을 지정하였으니 User 타입의 객체를 새로 생성해 CoffeeByUser에 바로 넣어주는 것이다.

그 외의 다른 내용들은 위 게시글에 정리하였다.

 

다음은 컬렉션 프레임워크다.

컬렉션 프레임워크는 자주 접했었고, 정리도 여러 번 했지만 복습 겸 한 번 더 듣고 정리하였다.

https://prao.tistory.com/entry/Java-%EC%BB%AC%EB%A0%89%EC%85%98-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%ACList-Set-Map-Iterator

 

[Java] 컬렉션 프레임워크(List, Set, Map, Iterator)

컬렉션 프레임워크 기존 배열(크기 고정) public class Main { public static void main(String[] args) { //컬렉션 프레임워크(List, Set, Map) -> 원하는 만큼 데이터를 추가하거나 삭제할 수 있음 int[] array = new int[3];

prao.tistory.com

가끔 헷갈렸던 부분의 원인이 앞서 언급한 제네릭스에 대한 이해가 부족했던 것임을 깨달았다.

 

마지막은 람다와 스트림이다.

이 부분이 핵심이다.

알고리즘 풀이를 볼 때나, 인터넷에서 코드를 참고할 때 자주 봤는데 볼 때마다 헷갈렸으나 미루다가 이제야 공부를 한다.

https://prao.tistory.com/entry/Java-%EC%9D%B5%EB%AA%85%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%9E%8C%EB%8B%A4%EC%99%80-%EC%8A%A4%ED%8A%B8%EB%A6%BC

 

[Java] 익명클래스, 람다와 스트림

익명 클래스 이름이 없는 클래스 내부 클래스 중 특별한 클래스 1회성 코드. 해당 객체 하나만을 위한 클래스 [예시] 카페에서 커피 주문. 특별한 손님을 위한 익명 클래스 public class Main { public sta

prao.tistory.com

예시 코드를 따라치면서 하니 람다와 스트림이 제대로 이해가 되었고, 모르는 상태에서 스트림을 보았을 때 코드가 너무 길고 복잡해 보였으나, 그 과정을 공부하고 나니 가독성이 좋게 이해되었다.

 

오늘 람다와 스트림, 제네릭스 등을 학습하였으니 내일부터는 Java MVC에 대해서 심도있게 공부해보려 한다.

당분간 알고리즘은 후순위로 미뤄두고 객체지향과 MVC 공부에 집중해보겠다.

반응형