본문 바로가기

Language

(107)
[Java] Stream API - filter, map, flatMap Stream API란? java8부터 추가된 API로 함수형 인터페이스(람다식)를 적용하여 컬렉션과 같은 저장요소를 반복적으로 처리할 수 있는 기능이다. 1. filter filter는 말 그대로 특정조건으로 스트림의 컨텐츠를 필터링하는 것이다. 함수에 filter(조건)으로 조건을 넣으면 된다. 아래 코드를 보면 c로 시작하는 문자열만 필터링하도록 조건을 설정하였고 이 조건에 해당하는 문자의 stream이 리턴되었다. List list = Arrays.asList("a1", "a2", "b1", "b2", "c2", "c1", "c3"); Stream stream1 = list.stream(); Stream filtered = stream1.filer(s -> s.startsWith("c")); fil..
[Java] 람다식(lambda expression) 람다식이란? 람다 함수는 java8부터 추가된 기능으로 익명 객체를 생성하기 위한 표현식을 말한다. 람다식 이전 public interface Goods{ public void doSome(); } public class Computer implements Goods{ @Override public void doSome() { System.out.println("do Operation!"); } } public class Main{ public static void main(String[] args){ Goods com = new Computer(); com.doSome(); } } 기존 자바에서 interface를 이용해 다형성을 제공하기 위해서는 interface를 만들고, 그것을 구현한 class를..
[Java] 익명 객체(anonymous object) 익명 객체란? 클래스를 정의하지 않고 객체를 정의하는 방법 -> 1회용 클래스 사용 -> 재사용 불가능한 클래스 (객체를 1번 만드는 용도) 이벤트 객체, 스레드 객체, 람다식, 스트림 등에서 사용 1. 익명 자식 객체 생성 부모 타입으로 필드/변수를 선언하고, 자식 객체를 초기값으로 대입한다고 하자. 이 때 해야할 일은 부모클래스를 상속해서 자식 클래스 선언 new 연산자를 이용해 자식 객체 생성 생성한 후 필드/로컬 변수에 대입 class Child extends Parent{ } class A{ Parent field = new Child(); void method(){ Parent local = new Child(); } } 하지만 자식 클래스가 재사용되지 않고, 단지 필드/변수의 초기값으로만 사..
[C++] 원하는 자리수까지 출력하기 (반올림, 올림, 내림) 기본적인 반올림, 올림, 내림 가 필요하고 반올림은 round(숫자), 올림은 ceil(숫자), 내림은 floor(숫자)이다. 소수점 첫 번째 자리에서 반올림한다. #include #include using namespace std; int main() { float num = 3.47; cout
[C++] PS할 때 전역변수를 써야 하는 경우 1. 배열을 전역으로 선언하면 기본값이 0으로 초기화된다. 하지만 지역변수는 0으로 초기화된다는 보장이 없다. 지역변수로 선언할 때 0으로 확실히 초기화하고 싶으면 int cnt[50001] = {0, } 이렇게 선언하면 된다. 2. 지역변수로 선언하면 메모리의 스택 영역에 할당된다. 스택은 메모리가 작아 크기가 큰 배열을 선언하기에 적당하지 않다. 전역변수는 메모리 데이터 영역에 할당되며, 크기가 큰 배열을 선언해도 문제없이 할당된다. 10만 이상 크기의 배열은 전역으로 선언하는 것이 좋다.
[Javascript] 호출 스택과 이벤트 루프 자바스크립트는 이벤트 기반 방식으로 동작한다. 이벤트 기반 시스템에서는 이벤트 리스너에 콜백 함수를 등록한다. 예를 들어 버튼을 누르면 경고 창을 띄우도록 설정할 때, 클릭 이벤트 리스너에 경고 창을 띄우는 콜백 함수를 등록한다. 이벤트 루프 - 이벤트 발생 시 호출할 콜백 함수들을 관리한다. 호출된 콜백 함수의 실행 순서를 결정하고, 노드가 종료될 때까지 이벤트 처리를 위한 작업을 반복한다. 태스크 큐(콜백 큐) - 콜백 함수들이 기다리는 공간. 이벤트 루프가 정한 순서대로 콜백 함수들이 줄 서있는 공간. 백그라운드 - 타이머, I/O 작업 콜백, 이벤트 리스너들이 동작하는 곳 function first(){ second(); console.log('첫 번째'); } function second(){ ..
[Python] 집합 집합 - 중괄호 { }로 감싸서 표현 - set() 함수를 사용 s1 = set([1, 2, 3]) s2 = set({1, 2, 3}) s3 = {1, 2, 3} - set()의 괄호 안에 리스트를 입력하여 만들거나 문자열을 입력하여 만들 수도 있음 s4 = set("Hello") - 비어 있는 집합 자료형 생성 s = set() 집합 자료형의 특징 ① 중복을 허용하지 않는다. s4 = set("Hello") # s4 = {'e', 'H', 'l', 'o'} ② 순서가 없다. → 인덱싱으로 값을 얻을 수 없다. set에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환 후 인덱싱 s1 = set([1, 2, 3]) l1 = list(s1) # l1 = [1, 2, 3] l1[0] # 1 교집합 구하..
[Typescript] 제네릭(Generics) 제네릭을 사용하면 클래스나 함수, 인터페이스를 다양한 타입으로 재사용할 수 있다. 다양한 타입을 인자로 받을 때 함수 오버로드나 유니온 타입을 사용해도 되지만 타입이 많아질수록 복잡해진다. 선언할 때는 타입 파라미터만 적어주고, 생성하는 시점에 타입을 결정한다. function getSize(arr: T[]):number{ return arr.length; } const arr1 = [1, 2, "a"]; getSize(arr1); // 3 const arr2 = ["a", "b", "c"]; getSize(arr2); // 3 const arr3 = [false, true, true]; getSize(arr3); // 3 제네릭으로 함수를 선언하고 사용하는 예시이다. T를 타입 파라미터라고 한다. 다른..