Java39 스트림과 병렬 처리 스트림 → 자바8 부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. → Stream이 제공아는 대부분의 요소 처리 메소드는 함수적 인터페이스 매개 타입을 가지기 때문에 람다식 또는 메소드 참조를 이용해서 요소 처리 내용을 매개값으로 전달할 수 있다. stream 사용 List list = Arrays.asList("홍길동","김자바","덕덕"); Stream stream = list.stream(); stream.forEach( name -> System.out.println(name)); 내부 반복자를 사용하므로 병렬 처리가 쉽다. 내부 반복자 : 컬렉션 내부에서 요소들을 반복시키고, 개발자는 요소당 처리해야 할 코드만 제공하는 코드 패턴. .. 2021. 5. 29. [java] and(), or(), negate() 디폴트 메소드와 isEqual()정적 메소드 Predicate 종류의 함수적 인터페이스는 and(), or(), negate() 디폴트 메소드를 가지고 있다. 이 메소드를 각각 논리 연산자인 && || ! 와 대응된다고 볼 수 있다. and() : 두 Predicate가 모두 true를 return하면 최정적으로 true를 리턴하는 Predicate를 생성한다. or() : 두 Predicate중 1개만 true return 시 true negate() : 원래 Predicate의 결과가 true이면 false로 false면 true로 반환 대표적인 Predicate의 함수적 인터페이스를 살펴보자. 1.Predicate 2.BiPredicate 3.DoublePredicate 4.IntPredicate 5.LongPredicate 공통점 : 모두 .. 2020. 10. 28. [Java8]LocalDateTime이란? LocalDateTime Java8에서는 새로운 LocalDateTime 이란 녀석이 추가됐습니다 그 이전에는 Calendar나 Date를 사용하여 날짜를 연산했지만 이제는 LocalDateTime을 사용하여 버그 없이 사용할 수 있습니다. Java 시간 API 시대 흐름순으로 정리하자면, Date > Calendar > time(org.joda.time) LocalDate ->로컬 날짜 클래스로 날짜 정보만 필요할 때 사용했습니다 문법 LocalDate currentDate = LocalDate.now(); //현재 날짜 정보를 저장한 LocalDate 객체 리턴 // 20xx - xx - xx LocalDate.of //파라미터로 주어진 날짜 정보를 저장한 LocalDate 객체를 리턴합니다. Loc.. 2020. 8. 22. [Java8] Date와 Time API 프로젝트를 진행하면서 시간과 날짜를 계산하는 일이 굉장히 많았다. 하지만 그 과정에서 헷갈린 부분을 정리하고 확실한 개념을 짚고 넘어가보고자 글을 정리한다. | Date & Time 소개 java8에 새로운 날짜와 시간 API가 생긴 이유 그전까지 사용하던 java.util.Date 클래스는 mutable(변하기 쉬운) 하기 때문에 thread safe 하지 않았다. 클래스 이름이 명확하지 않다 ( Date인데 시간까지 다루는 점에 대해 의아했음 ) 버그가 발생하는 일이 많았다 ( type의 안정성이 없고 월 같은 경우 0부터 시작하는게 이해가 안돼..) 날짜 시간 처리가 복잡한 application에서는 보통 Joda Time을 쓰곤 했다. 하지만 !! java8 에서 제공하는 Date-Time API.. 2020. 8. 1. [JAVA]큐(Queue)&PriorityQueue 와 연결리스트(LinkedList) 란? 프로그래머스 문제를 풀면서 큐에 대해 다시 한번 정리를 하면 좋겠다고 생각해서 글로 남겨보려고 한다. 먼저 자료구조의 종류를 살펴보면 아래의 사진처럼 종류가 다양하다. 그중에서도 Queue에 관해 알아보려고 한다. | 큐(Queue) Java에서 제공하고 있는 Queue는 interface 형태로 연결 리스트(LinkedList) 를 통해서 생성합니다. 그렇기 때문에 사이즈가 가변적이고, 쉽게 늘어납니다. Data 구조의 양쪽 단에서만 저장/접근 할 수 있는 컬렉션입니다. 특징 -선입선출 방식인 FIFO(First In First Out)으로 먼저 들어온 데이터가 먼저 출력되는 자료구조로 쓰는 것이 가장 큰 특징입니다. 생성 방법 Queue q = new LinkedList(); Queue의 메소드 종류.. 2020. 5. 8. [Java]ConcurrentLinkedQueue란? java.util 에서 제공하는 Queue class는 멀티 스레드 환경에서 critical section에 대한 동기화가 적용되어 있지 않다. 즉 멀티 스레드 환경에서 Queue 객체를 사용하게 된다면 아래와 같은 코드에 문제가 발생한다. queue.poll(); poll() 함수는 Queue 객체 맨 앞에 들어있는 data를 꺼내오는 동작을 수행한다. 개발자가 원하는 동작은 꺼내오는 동시에 data가 삭제되는 것이다. 즉, 다음번 poll() 함수에서는 다른 data를 꺼내오게 될 것을 기대한다. 하지만 멀티 스레드 환경에서는 이런 기대는 만족되지 않는다. 여러 스레드 중 2개나 3개의 스레드가 poll() 함수를 동일하게 수행하는 결과가 나타날 수 있기 때문이다. 만약 queue에 [“1”, “2”.. 2020. 5. 5. 이전 1 2 3 4 ··· 7 다음