본문 바로가기

JAVA/Java Study22

[Java] 스트림 API (Stream API) 스트림 API란?여러 종류의 데이터를 다양한 방식으로 다룰 수 있도록 제공하는 표준화된 방법 (≥ JDK 1.8)배열이나 컬렉션 뿐만 아니라 파일 데이터도 가능반복문이나 반복자(iterator)를 사용하여 개발하지 않아도 되도록 지원import java.util.Arrays;public class BasicStreamExample { public static void main(String[] args) { String[] stringArray = {"this", "is", "a", "stream", "example", "is", "this"}; Arrays.stream(stringArray).distinct().forEach(System.out::println); .. 2024. 6. 24.
[Java] 람다 표현식(Lambda Expression) 람다 표현식메서드를 하나의 식으로 표현한 것형태는 매개 변수를 가진 코드 블록이지만 런타임 시에는 익명 클래스를 생성간략하면서도 명확한 식으로 표현객체 지향보다 함수 지향 언어와 가까움(타입 매개변수) → {실행문; ...} 형태로 작성interface LambdaTest { int addOne(int i);}public class LambdaExample { public static void main(String[] args) { LambdaTest test = i -> ++i; System.out.println(test.addOne(1)); }}  람다 표현식의 특징장점코드의 간결성지연연산 수행병렬처리 가능단점불필요한 사용 시, 가독성 저하람다식의 호출이 까다로움람다 stre.. 2024. 6. 24.
[Java] List에 특정 값이 포함되어 있는지 확인하는 방법 1. contains()List list = new ArrayList();list.add("Hello");list.add("World");if (list.contains("Hello") { System.out.println("true");} else { System.out.println("false");}if (list.contains("coffee") { System.out.println("true");} else { System.out.println("false");}// true// false  2. equals()e.g. Example이라는 클래스에 equals() 메소드를 Override하여 재정의하고 List의 contains() 메소드로 값을 찾기public class Example { .. 2024. 5. 20.
[Java] 조합 Combination 구현하기! 참고한 블로그⬇️ 조합 Combination (Java) 조합연습 문제 조합이란 n 개의 숫자 중에서 r 개의 수를 순서 없이 뽑는 경우를 말합니다.예를 들어 [1, 2, 3] 이란 숫자 배열에서 2개의 수를 순서 없이 뽑으면[1, 2] [1, 3] [2, 3]이렇게 3 개가 나옵니 bcp0109.tistory.com 조합 : n개의 숫자 중에서 r개의 수를 순서 없이 뽑는 경우 e.g. [1, 2, 3] 배열 중 2개의 수를 순서 없이 뽑는 경우 [1, 2], [1, 3], [2, 3] 핵심 내용 배열을 처음부터 끝까지 돌며 현재 인덱스를 선택하는 경우 현재 인덱스를 선택하지 않는 경우 두 가지로 모든 경우를 완전탐색할 것 변수 설명 arr 조합을 뽑아낼 배열 output 조합에 뽑혔는지 체크하는 배열.. 2024. 4. 19.
[Java] static은 언제, 어떻게 사용해야 할까? 자바 공부를 하면서 static이 무엇인지는 배웠는데... 도대체 어떤 상황에서는 꼭 사용해야 하고, 어떤 상황에서는 사용하지 말아야 하는지가 궁금해졌다. static static은 고정된, 정적인 이라는 의미이다. static이라는 키워드를 사용해서 static field(정적 필드)와 static method(정적 메소드)를 만들 수 있다. 이 둘을 묶어서 정적 멤버(클래스 멤버)라고 한다. 즉, 객체(인스턴스)에 소속된 멤버가 아닌 클래스에 고정된 멤버라는 뜻이다. 객체를 생성하지 않고도 사용할 수 있는 이유가 바로 static은 객체에 소속된 것이 아니기 때문이다. static에 대해 글을 찾아보니 JVM에 관한 내용이 함께 나오는데, JVM에 대해서는 개념 정도만 알고 있었기 때문에 다시 정리해.. 2024. 2. 16.
[Java] 이진 탐색 트리 - 재귀 형태 구현 이진 탐색 트리에 대해 공부하다가, 재귀 형태 구현이 잘 이해되지 않아 정리해본다. import java.util.LinkedList; import java.util.Queue; class BinarySearchTree { Node head; BinarySearchTree(int key) { this.head = new Node(key, null, null); } public Node addNodeRecursive(Node cur, int key) { if (cur == null) { return new Node(key, null, null); } if (key < cur.key) { cur.left = addNodeRecursive(cur.left, key); } else { cur.right = ad.. 2024. 2. 5.