일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- java.lang 패키지
- 프로그래머스
- JavaScript
- 자바의 정석(기초편)
- 코딩테스트
- 알고리즘
- thinking differently
- Java
- programmers
- Spring Framework
- 해시
- StringTokenizer
- Computer Science
- BFS
- 반복문
- Spring
- Python
- 영어원서
- 소프티어
- 오블완
- 백준
- nextInt
- Java script
- Programming
- 관계형 데이터베이스
- 티스토리챌린지
- softeer
- Steve Jobs
- MySQL
- SQL
- Today
- Total
목록자바의 정석(기초편) (17)
도라에몽 개발자
Collectors (★클래스; class) 는 다양한 기능의 컬렉터(Collector를 구현한 클래스)들을 제공함. - 변환 기능: mapping(), toList(), toMap(), toCollection(), ... - 통계 기능: counting(), summingInt(), ... - 문자열 결합 기능: joining() - 리듀싱 기능: reducing() - 그룹화 및 분할 기능: groupingBy(), collectingAndThen(), ... 스트림(Stream)을 컬렉션 및 배열로 변환 컬렉션으로의 변환 - toList, toSet, toMap(), toCollection() // 리스트에 담는 방법 List names = stuStream.map(Student::getName) ..
스트림(Stream)의 정의 - 다양한 데이터 소스(컬렉션, 배열)를 '표준화'된 방법으로 다루기 위한 것 - 데이터의 연속적인 흐름을 의미함. - JDK 1.8부터 추가된 기능으로, 진정한 통일을 만들어냄...!! → 모든 데이터 소스(Collections (List, Set, Map), Arrays)를 스트림(Stream)으로 변환할 수 있으며, 중간연산과 최종연산을 거쳐서 최종 결과를 출력해낼 수 있음. 1st. 데이터 소스: Collections (List, Set, Map), Arrays 2nd. 스트림(Stream) 생성 및 데이터 소스를 스트림(Stream)으로 변환 3rd. 중간 연산 4th. 최종 연산 Finally, 최종 결과 출력!! 스트림(Stream)의 특징 1) 데이터 소스로부터..
람다식(Lambda Expression)의 정의 - 함수(메서드)를 간단한 식(expression)으로 표현하는 방법을 의미함. - 익명 함수(이름 없는 함수; Anonymout function): 반환타입과 이름을 삭제한 형태 람다식(Lambda Expression)으로 작성하는 방법 1) 메서드의 이름과 반환타입 제거하고, '->' 표시를 블록({}) 앞에 추가 2) 반환값(return값) 있는 경우, 식이나 값만 적고 return문은 생략 가능하며 ';'표시 붙이지 않음. 3) 매개변수 타입이 추론 가능한 경우, 매개변수 타입 또한 생략 가능함. 람다식(Lambda Expression) 작성 시 주의사항 - 매개변수가 하나인 경우에는 괄호() 생략 가능하나, 매개변수 타입이 생략될 수 없는 경우에는..
프로세스와 쓰레드 (process & thread) 프로세스(process) - 실행 중인 프로그램을 의미함. - 자원(resource; 메모리, CPU 등)과 쓰레드로 구성되어 있음. 쓰레드(thread) - 프로세스 내에서 실제 작업을 수행하는 것을 의미함. - 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있음. ★ 1) 싱글 쓰레드 프로세스 = 자원 + 쓰레드 → 각 작업이 순차적으로 수행됨. 2) 멀티 쓰레드 프로세스 = 자원 + 쓰레드 + 쓰레드 + ... + 쓰레드 → 여러 작업을 동시에(번갈아가면서) 수행함으로써 효율성이 높아지는 장점이 있음. (★ 'OS 스케쥴러에 따른 순서'로 실행됨 ★) → context switching으로 인한 시간 소요로 싱글 쓰레드 프로세스보다 진행시간이 다소..
정의 - 관련된 상수들을 같이 묶어둔 것을 의미함. - Java는 값과 타입을 동시에 확인함으로써, 안전한 열거형을 제공함. // 무늬(Kind)와 숫자(Value)에 대하여 정의해보자. class Card { enum Kind { CLOVER, HEART, DIAMOND, SPACE } // 0, 1, 2, 3 enum Value { TWO, THREE, FOUR } // 0, 1, 2 final Kind kind; final Value value; } if(Card.Kind.CLOVER == Card.Value.TWO) { ... } // 컴파일 에러 발생; 타입이 달라서 비교 불가 활용 방법 1) 열거형 타입의 변수 선언 enum 열거형이름 { 상수명1, 상수명2, ... } 열거형이름 변수이름; ..
정의 - 컴파일 시 타입을 체크해주는 기능을 의미함. (compile-time type check) - 미리 저장할 객체의 타입을 지정하여 알려줌으로서, 다른 타입의 객체는 저장하지 못하도록 함. Ex. ClassCastException (형변환 에러)과 같은 RuntimeException의 발생 방지하여 Runtime error (실행 중 발생하는 오류) 발생하기 전, compile time error (컴파일 시 발생하는 오류) 발생시켜 미리 수정할 수 있도록 함. (∵ Runtime error 발생시 프로그램 죽어서 이슈가 훨씬 큰 편...) 특징 - 객체의 타입 안정성을 높이고, 형변환의 번거로움을 줄여줌. → 형변환 생략 가능하여 코드가 간결해지는 장점 있음. // TV 객체만 저장할 수 있는 ..
Collections 클래스 정의 - 컬렉션을 위한 메서드(static)를 제공함. 메서드(method) - 컬렉션 기능(채우기, 복사, 정렬, 검색): fill(), copy(), sort(), binarySearch() 등 - 컬렉션의 동기화: synchronized___() → 필요 시에만 동기화 하기 위함. Ex. synchronizedCollection(Collection c), synchronizedList(List list), synchronizedSet(Set s), ... - 변경불가(readOnly) 컬렉션: unmodifiable___() Ex. Collection unmodifiableCollection(Collection c), List unmodifiableList(List li..

HashMap, Hashtable 정의 - Map의 인터페이스(interface)를 구현한 것임. - 데이터를 키(key)와 값(value)의 쌍으로 저장함. cf. 키(key)는 중복이 허용되지 않고, 값(value)은 중복이 허용됨. (→ key는 ID, value는 PW라는 예시로 이해하면 됨.) - HashMap(동기화되어 있지 않음)은 Hashtable(동기화 되어있음.)의 신버전임. ▶ 새로운 버전인 HashMap을 사용할 것을 권장함. HashMap 정의 - Map 인터페이스(interface)를 구현한 대표적인 컬렉션 클래스 - 순서를 유지하기 위해서는 LinkedHashMap 클래스를 사용하면 됨. 특징 - 해싱(hashing) 기법으로 데이터를 저장함. → 데이터가 많더라도, 검색이 빠..
★ Set - 순서 유지 X, 중복 허용X ★ HashSet 정의 - Set 인터페이스를 구현한 대표적인 컬렉션 클래스 - 저장 순서를 유지하지 않아 순서가 없으며, 중복을 허용하지 않음. - 순서를 유지하기 위해서는, LinkedHashSet 클래스를 사용하면 됨. 특징 - HashSet은 객체를 저장하기 전에 기존에 같은 객체가 있는지 확인함. → 같은 객체가 없으면 저장하고, 같은 객체가 있으면 저장하지 않음. - boolean add(Object o)의 경우, 저장할 객체(o)의 equals() 메서드와 hashCode() 메서드를 호출함. → equals() 메서드와 hashCode() 메서드가 오버라이딩 되어 있어야 함. ★★★ import java.util.*; class Ex11_11 { ..
Arrays 클래스 Arrays 클래스가 제공하는 메서드 배열의 출력 - toString() 배열의 복사 : 새로운 배열을 생성하여 반환함. - copyOf() - copyOfRange() int[] arr = {0,1,2,3,4}; int[] arr2 = Arrays.copyOf(arr, arr.length); // [0, 1, 2, 3, 4] int[] arr3 = Arrays.copyOf(arr, 3); // [0, 1, 2] int[] arr4 = Arrays.copyOf(arr, 7); // [0, 1, 2, 3, 4, 0, 0] // copyOfRange(from, to) -> from 자리 이상, to 자리 미만의 값 출력 (to 자리에 저장된 값은 출력X) int[] arr5 = Array..