1. 스트림이란 컬렉션 및 배열의 요소를 표준화된 방법으로 반복 처리하기 위해서 자바 8부터 제공하는 기능이다. 기존에는 for문, for-each문 또는 Iterator객체를 얻어 사용하였다면, 지금부터는 Stream객체를 얻어 좀 더 효율적으로 사용할 수 있다. import java.util.*; import java.util.stream.*; public class StreamEx { public static void main(String[] args) { List list = new ArrayList(); for (int i = 1; i System.out.print(i + " ")); } } 2. 스트림의 특징 1) 속도가 빠르고 병렬처리에 효율적이다. for문, for-each문보다 속도가 빠..
1. 람다식이란 자바 8부터 지원하는 기능으로 함수형 프로그래밍을 뜻하며, 함수를 정의하고, 함수를 데이터 처리부로 보내서 데이터를 처리하는 기법을 말한다. 쉽게 말해서 함수(자바에서는 메서드)를 간단한 식으로 표현하는 방법으로, 익명 함수라고도 한다. 2. 람다식의 형태 (매개변수) -> { 처리 내용} 3. 메서드로부터 람다식을 만드는 방법 메서드의 리턴 타입과 이름을 지우고 매개변수와 구현부 사이에 화살표를 넣어주면 된다. 간단한 예 // 메서드 사용 public int max(int a , int b){ return a > b ? a : b; } // 접근제어자, 리턴 타입, 메서드 명을 지우고 매개변수와 구현부 사이에 화살표를 넣어준다. // 람다식 사용 (a, b) -> { a > b ? a ..
1. 열거형(열거타입, Enum)이란 한정된 값을 갖는 타입으로 서로 관련된 상수를 편리하게 선언, 사용하기 위한 것이다. 타입에 안전한 열거형 : 실제 값이 같아도 타입이 다르면 컴파일 에러가 발생한다. 2. 메서드 3. 열거형 정의 및 사용하기 1) 열거형 정의 public enum [열거형 이름] { 상수1, 상수2, 상수3 }; * IDE를 사용할 때, 아래와 같이 Enum을 선택해서 생성해 준다. 열거형 상수의 값이 불연속적일 경우 ()를 통해 값 설정 가능하다. 열거형 상수간 == 비교는 사용 가능하지만 비교는 불가능하다. → compareTo() 사용하여 비교 2) 열거형 사용하기 public enum Week { SUNDAY(1), MONDAY(2), TUESDAY(3), WEDNESDAY..
1. 트리(Tree)란 트리 : 노드(Node)와 가지(Branch)를 이용, 사이클을 이루지 않도록 만든 데이터 구조 2. 트리 용어 노드(node) : 다른 연결된 노드에 대한 정보와 데이터를 저장하고 있는 트리의 기본 요소 루트(root) : 최상위 노드 레벨(level) : 루트를 level 0, 가지가 아래로 하나씩 뻗어나갈 때마다 1씩 증가 부모 노드(parent node): 어떤 노드의 상위 레벨에 연결된 노드 자식 노드(child node) : 어떤 노드에서 연결된 아래쪽 노드(다음 레벨에 연결된 노드) 형제 노드(sibling) : 동일한 부모 노드를 가진 노드 리프(leaf) : 자식 노드가 하나도 없는 노드(가장 아래에 위치하는 노드) 차수(degree) : 트리에서 노드가 가진 자식..
1. Set 데이터의 순서를 유지하지 않고 중복을 허용하지 않는 집합(null 또한 하나만 저장할 수 있음) 순서를 유지하지 않기 때문에 정렬을 할 수 없음 2. 주요 메서드 3. 구현 클래스 1) HashSet Set인터페이스를 구현한 가장 대표적인 컬렉션으로 해시 알고리즘을 사용하여 검색속도가 매우 빠름 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장 Set을 사용(중복 제거)하면서 저장 순서의 유지가 필요하다면 LinkedHashSet을 사용 HashSet의 add()메서드를 사용할 때 이미 같은 객체가 있다면 중복으로 간주하고 저장하지 않음 새로운 요소 추가 전에 equals(), hashCode()를 호출하여 기존에 저장된 요소와 같은 것인지 판별함. → equals()와 hashCod..
1. List컬렉션 데이터의 중복을 허용하고 순서가 있는 데이터의 집합 객체를 인덱스로 관리하기 때문에 인덱스로 객체를 조회, 삭제할 수 있는 기능을 제공한다. List인터페이스를 구현한 클래스는 ArrayList, Vector LinkedList, Stack, Queue가 있다. 2. 주요 메서드 3. 구현 클래스들 1) ArrayList List컬렉션에서 가장 많이 사용되는 클래스로 Vector를 개선한 것이다. 배열을 이용하여 데이터를 순차적으로 저장하여 인덱스를 이용해서 배열 요소에 빠르게 접근 가능하다. 배열과 다른 점은 배열은 생성 시 크기를 정해야 하지만 ArrayList는 제한없이 객체를 추가할 수 있다는 점이다. 처음 생성된 배열에 더 이상 저장할 공간이 없는 경우, 큰 배열을 새로 생성..
1. 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 → 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것 자바는 이와 관련된 인터페이스와 클래스들을 java.util 패키지에 포함시켜 놓았다. 2. 주요 인터페이스 컬렉션 프레임워크의 주요 인터페이스로는 List, Set, Map이 있다. 이 중 List, Set은 Collection인터페이스의 상속을 받지만 Map은 위의 둘과는 다른 형태를 띄기 때문에 상속계층에는 포함되지 못한다. 3. Collection인터페이스의 주요 메서드
1. Calendar와 Date 1) 추상클래스 Calendar Calendar는 추상클래스이므로 getInstance()를 통해 인스턴스를 얻어야 한다. 시스템의 국가와 지역설정을 가져와서 태국인 경우 BuddhistCalendar를 반환하고 그 외의 국가는 GregorianCalendar를 반환한다. 2) Calendar ↔️ Date Calendar가 생기면서 Date의 메서드 대부분은 deprecated되었지만 Date를 필요로 하는 메서드들이 여전히 있기 때문에 변환하는 방법을 알아보자 Calendar ➡️ Date // Calendar -> Date Calendar cal = Calendar.getInstance(); Date date = new Date(cal.getTimeInMillis()..