본문 바로가기

Programming/Java, Spring98

자바 Stream, max&min count, match, find, reduce, collectors, to map, grouping by, partitioning by, for each, parallel stream Max and Min Count - 스트림 안의 데이터 최대값, 최소값, 개수 - max: Stream 안의 데이터 중 최댁밧을 반환. Stream이 비어있다면 빈 Optional을 반환 - min: Stream 안의 데이터 중 최소값을 반환. Stream이 비어있다면 빈 Optional을 반환 - count: Stream 안의 데이터 개수를 반환 Optional max(Comparator 2023. 6. 20.
Java Stream, filter, map, sorted, distinct, flatmap 스트림 Stream - 컬렉션 형태로 구성된 데이터를 람다를 이용해 간결하고 직관적인 프로세스를 가능하게 한다. - 스트림을 쓰면 사실 for, while을 안쓰게 됨 - 손쉽게 병렬 처리도 가능 String Stream을 만드는 예시 Stream nameStream = Stream.of("Alice", "Bob", "Charlie"); 스트림에 담긴 names를 List로 담기 List collect = nameStream.collect(Collectors.toList()); 배열을 스트림으로 만들 수도 있다. String[] cityArray = new String[]{"Seoul", "tokyo", "busan"}; Stream cityStream = Arrays.stream(cityArray).. 2023. 6. 19.
자바 Gui 프로그래밍 - AWT 클래스 1. 윈도우 프로그램 만들기 그래픽 요소를 이용하여 사용자가 프로그램과 대화하는 방식의 인터페이스 -> 텍스트 기반 or 명령행 인터페이스 (CLI)와 비교됨 GUI 프로그래밍을 위해 필요한 거 - GUI 컴포넌트: 윈도우, 메뉴, 버튼, 레이블, 콤보박스, 체크박스, 텍스트 필드, 스크롤바, 대화상자 등 - 컨트롤, 이벤트 발생과 처리: 사용자와 상호작용 - 컨테이너와 배치 관리자 AWT - JFC(Java Foundation Class) GUI를 만들거나 그래픽 처리를 위한 클래스 라이브러리 AWT : 자바에서 처음 제공한 GUI용 API 주 패키지는 java.awt 운영체제의 윈도우 시스템을 사용함 -> 중량 컴포넌트로 외양이 운영체제마다 다름 package org.awt; import java.a.. 2023. 6. 13.
자바 멀티 스레드 프로그래밍 1. 프로세스와 스레드 스레드 - Java 프로그램은 하나의 프로세스로 만들어져 실행 - 프로세스는 실행중인 프로그램 - 스레스는 실행 중인 프로그램 내에 존재하는 소규모 실행 흐름 - 스레드는 경량 프로세스 멀티 스레드 - 하나의 프로세스 내부에서 여러 스레드가 만들어져 동시 실행 될 수 있음 - 자바 프로그램은 하나의 스레드(main)에서 시작함 - main 스레드에서 자식 스레드를 만들어 시작시킬 수 있음 - 그러면 여러 스레드가 동시에 독립적으로 실행되고 종료 프로세스 스레드 멀티스레드 실행 단위 하나의 프로그램 또는 작업 단위 프로세스 내부에서 실행되는 작은 실행 단위 하나의 프로세스 내에서 동시에 실행됨 자원 공유 운영체제에 의해 독립적인 자원 할당 프로세스 내부 자원 공유 프로세스 내부 자원.. 2023. 6. 12.
Java의 Arrays.sort()를 사용할 때 원시형 타입이 아닌 참조형 타입으로 전달하면 성능 향상이 가능하다 (Dual-Pivot Quicksort, Tim Sort) Arrays.sort()를 사용할 때 원시형 타입이 아닌 참조형 타입으로 전달하면 성능 향상이 가능하다. 그 전에 먼저 sort() 메서드에 대해 간단히 살펴보자. 아래와 같이 다양한 sort() 메서드가 오버로딩 되어 있다. public class Arrays { private Arrays() {} public static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, 0, a.length); } public static void sort(int[] a, int fromIndex, int toIndex) { rangeCheck(a.length, fromIndex, toIndex); DualPivotQuicksort.sort(a, 0, fromIndex, to.. 2023. 6. 8.