전체 글262 [Java] Stream API에 대한 이해 1. Stream API에 대한 이해 [Stream API에 대한 소개] Java는 객체지향 언어이기 때문에 기본적으로 함수형 프로그래밍이 불가능하다. 하지만 JDK8부터 Stream API와 람다식, 함수형 인터페이스 등을 지원하면서 Java를 이용해 함수형으로 프로그래밍할 수 있는 API들을 제공해주고 있다. 그 중에서 Stream API는 데이터를 추상화하고, 처리하는데 자주 사용되는 함수들을 정의해두었다. 여기서 데이터를 추상화하였다는 것은 데이터의 종류에 상관 없이 같은 방식으로 데이터를 처리할 수 있다는 것을 의미하며, 그에 따라 재사용성을 높일 수 있다. 예를 들어 주어진 배열이나 리스트의 데이터를 정렬된 상태로 출력하고자 한다고 하자. Stream API를 사용하지 않은 경우 다음과 같이 .. 2023. 8. 23. [Kotlin] 늦은 초기화 (lateinit, by lazy) 늦은 초기화 기법늦은 초기화 라 함은, 말 그대로 객체 초기화를 늦게 하는 것이다.예를 들어 분명 변수 a를 사용할 예정인데, a의 첫 상태를 정의하기 어려울 때 어떻게 하겠는가?그럼 우린 이렇게 할 수 있다.var a: String? = null그치만 어차피 이후에 분명 사용할 녀석인데 굳이 위험하게 초기 상태로 null을 사용해야할까?null 사용의 지양을 강조하는 코틀린 창시자들은 분노할 것이 뻔하다.. 왜 늦은 초기화를 쓰는가?Null 안정화코틀린은 기본적으로 null 값을 허용하지 않으므로, 해당 프로퍼티가 초기화된 이후에만 접근할 수 있도록 처리하는 것이 좋습니다. 늦은 초기화를 사용하면 nullable 프로퍼티를 사용할 필요가 없어지므로, 불필요한 null 처리를 줄일 수 있습니다.메모리 .. 2023. 8. 22. [Kotlin] 필드(Field)와 프로퍼티(Property) 들어가기 전에보통 객체지향 프로그래밍에서 클래스를 정의할 때 객체의 상태는 멤버변수 (필드)로, 행위는 메소드로 표현한다.그리고 멤버변수가 있으면 객체의 값을 설정하고 가져오는 메소드( setter / getter)가 동반되는 경우가 많다.코틀린에서는 이런 요소를 아우르는 프로퍼티라는 개념이 제공된다.Property = Fileld + Getter + Setter 프로퍼티 정의프로퍼티를 정의하는 전체 문법은 아래와 같다.(var/val) [: ] [= ] [] []var / val : 프로퍼티 선언을 위한 예약어.var : 초기화 후 값 변경이 가능한 프로퍼티val: 초기화 후 값 변경이 불가능한 프로퍼티propertyName: 프로퍼티명PropertyType: 프로퍼티 .. 2023. 8. 22. [프로그래머스 Level 1] 최대공약수와 최소공배수 [Java] 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12940 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int[] solution(int n, int m) { int[] answer = new int[2]; int min = Math.min(n,m); int max = 0; for(int i=1; i 2023. 8. 20. [프로그래머스 Level 1] 직사각형 별찍기 [Java] 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.Scanner; class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); StringBuilder sb = new StringBuilder(); for(int i=0; i 2023. 8. 20. [프로그래머스 Level 1] 행렬의 덧셈 [Java] 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0].length]; for(int i=0; i 2023. 8. 20. 이전 1 ··· 29 30 31 32 33 34 35 ··· 44 다음