MapleStory Cookie With Halo

전체 글 470

[JAVA][Stream]중간 연산-filter() distinct() skip() limit() sorted()

중간 연산의 종류 중간 연산설명Stream  distinct()중복 제거.Stream  filter(Predicate predicate)조건에 맞지 않는 요소 제거.Stream  limit(long maxSize)스트림 일부 잘라내기.Stream  skip(long n)스트림 일부 건너뛰기.Stream  peek(Consumer action)작업 중간을 확인할 때 사용한다.Stream  sorted()Stream  sorted(Comparator comparator) 요소 정렬Stream DoubleStreamIntStreamLongStreammap(Function mapper)mapToDouble(ToDoubleFunction mapper)mapToInt(ToIntFunction mapper)mapTo..

[JAVA][Stream]스트림 생성

Stream은 Collection 혹은 Array를 이용해 만들어집니다.2024.12.13 - [☕ 자바 JAVA/☕ 클래스와 함수 Class & Method] - [JAVA]스트림 stream (+특징)각 변환방법들에 대해 알아보겠습니다. Collection → Stream.stream()   Array → Stream  배열을 스트림으로 바꾸는 방법은 두가지가 있다.Arrays. stream()Stream.of() ❗ 기본타입배열은 기본형스트림만 생성가능하다.  Random클래스의ints() doubles(), longs() 이용해서난수 스트림 만들기 💡 Random클래스의 ints(), doubles(), longs()는 난수. 무한으로 숫자를 생성할 수 있다.  난수 갯수 지정해서 만들기intS..

[JAVA][stream]스트림이란? (+특징)

Stream🌊: 다양한 데이터 소스(Collection, array)를표준화된 방법으로 다루기 위한 패키지. 스트림만들기중간연산 - 연산결과가 스트림⭕. n번 수행가능.최종연산 - 연산결과가 스트림❌. 1번만 수행가능.   💡 Collections패키지로 컬렉션 객체들(List, Set, Map)을 다룰 수 있지만2024.11.27 - [☕ 자바 JAVA/☕ 클래스와 함수 Class & Method] - [JAVA]Collections:컬렉션을 위한 메서드 모음컬렉션 객체의 성격이 많이 달라 사용법이 일치되지 않았었습니다.JDK1.8부터 Stream이 들어오면서 배열과 컬렉션을 가지고 스트림을 만들어 사용법을 통일하였습니다.  특징   💡 최종연산에서 Stream을 소모한다.따라서 재사용 시 스트림..

[JAVA]메서드 참조 method reference

함수형 인터페이스란❓2024.12.11 - [💬 프로그래밍 표현식] - [Lambda]함수형 인터페이스 FunctionalInterface람다식이란❓2024.12.11 - [💬 프로그래밍 표현식] - [Lambda]람다식  메서드 참조method reference클래스이름::메서드이름   람다식의 구현부 Integer.parseInt(s);에서클래스이름 Integer메서드이름 parseInt만 빼서 적은 것이다.함수형인터페이스 Function에 입출력정보가 있기에 가능하다.💡 메서드 참조는 하나의 메서드만 호출하는 람다식을 간단히 사용할 수 있게 해준다. 종류람다메서드 참조static메서드 참조(x) -> ClassName.method(x)ClassName::method인서턴스 메서드 참조(obj,..

[JAVA]Predicate 결합, Function 결합

시작 전에 Predicate와 Function가 뭔 지 모르겠다면❓2024.12.01 - [☕ 자바 JAVA/☕ 클래스와 함수 Class & Method] - [JAVA]java.util.function 패키지  and() or() negate()를 이용해두 Predicate를 결합할 수 있다. 💡 negate()는 !와 같이 not이다. true→false, false→true로 바꿔준다.  Predicate.isEqual(): 두 인수가 같은 지 확인한다.  .andThen()Function 결합Function 이라 두개의 Function을 합치려면Function출력타입>Function입력타입, 출력타입>이 두개가 같아야 한다.위 코드는 f 실행 후 g를 실행하는 함수를 합친 것이다.💡 참고로 c..

[Lambda]함수형 인터페이스 FunctionalInterface

이 포스트는 자바언어를 예제로 설명되었습니다. 함수형 인터페이스@FunctionalInterface: 단 하나의 추상 메서드만 선언된 인터페이스.💡 함수형 인터페이스는 람다식을 사용하기 위해 만들어졌습니다.익명객체인 람다식을 사용하기 위해서는 참조변수가 필요합니다. 람다식에서 참조변수로 사용하는 것이 함수형 인터페이스입니다.@FunctionalInterface에 대해 모르겠다면❓2024.11.29 - [☕ 자바 JAVA/☕ 개념지식] - [JAVA]@Annotation 종류와 사용법람다식에 대해 모르겠다면❓2024.12.11 - [💬 프로그래밍 표현식] - [Lambda]람다식  실습  함수형인터페이스에는 꼭 어노테이션  @FunctionalInterface을 적어야 합니다.❗  util에 메서드에서..

[Lambda]람다식

이 포스트는 자바 코드를 람다식으로 변환하는 방식으로람다식 작성법을 설명하고 있습니다. 💡 Java는 객체지향 언어(OOP:Object Oriented Programming)언어이다. 8버전부터 함수형 언어(FP:Function Programming) 표현식을 포함시켰다.그 외 Python과 JS 모두 OOP언어이면서 FP기능들을 가지고 있다.※ 각 언어마자 람다식은 간결함을 추구하지만 사용법은 조금씩 다르다.   람다식Lambda: 함수를 간단한 식expression으로 표현하는 방법 💡람다식은 함수 이름과 반환타입이 없기 때문에 익명 객체anonymous라고 한다.    작성법 메서드 이름과 반환타입을 제거하고-> 를 블록{ } 앞에 추가한다. 값을 반환할 경우식이나 값만 적고 return 생략가..

[JAVA][Thread]wait() & notify()

💡 wait() & notify() 동기화의 단점인 비효율성(한번에 한개를 처리하기에)을 보완하기 위해 사용된다.Object클래스에 정의되어 있으며, 동기화 블록 내에서만 사용할 수 있다.2024.12.09 - [☕ 자바 JAVA/☕ 클래스와 함수 Class & Method] - [JAVA][Thread]동기화 synchronizationwait()객체의 lock을 풀고, 쓰레드를 해당 객체의 waiting pool에 넣는다.notify()waiting pool에서 대기중인 쓰레드 중 하나를 깨운다.notifyAll()waiting pool에서 대기중인 모든 쓰레드를 깨운다.일반적으로는 notify()보다 notifyAll()을 사용하는 것이 좋다. 예제 내용이 어려웠는데 notify()가 대기중인 쓰..

[JAVA][Thread]동기화 synchronization

💡 쓰레드 동기화Thread synchronization한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 하는 것을 말한다.멀티 쓰레드에서는 다른 쓰레드의 작업에 영향을 미칠 수 있다.진행중인 작업이 간섭 받지 않게 하려면 '동기화'가 필요하다.동기화하려면 간섭받지 않아야 하는 문장을 '임계 영역critical section'으로 설정한다.임계영역은 락Rock(자물쇠)을 얻은 단 하나의 쓰레드만 출입가능하다.(객체 1개당 락 1개) synchronized를 이용한 동기화→ 임계영역 만들기💡 임계영역은 갯수와 영역을 최소화해야 한다.때문에 메소드 전체 사용을 지양해야 한다.따라서 위의 2번째를 권장한다.  예제1spendMoney100()메서드에 synchronized를 붙여 임계영역을 만들었..

[JAVA][Thread]join() & yield()

join(): 지정된 시간동안 특정 쓰레드의 작업을 기다린다.void join()작업이 모두 끝날 때까지void join(long millis)천분의 1초 동안 (1000 = 1초)void join(long millis, in nanos)천분의 1총 + 나노초 동안InterruptedException 처리 필수❗만약 join()을 사용하지 않으면❓main쓰레드가 th1과 th2를 기다리지 않고 중간에 실행되는 것이 확인된다.  yield(): 남은 시간을 다음 쓰레드에게 양보한다.실제 쓰레드의 실행시간은 OS스케줄러가 관리하기에 크게 차이는 없지만yield()와 interrupt()를 적절히 사용하면, 응답성과 효율을 높일 수 있다.위 코드는 while(true)이고 if(false)일 경우 쓰레드는 하..

반응형