목차 지난 한 주간은 백준에서 집합과 관련된 문제를 주로 풀었다. 그러면서 해시 셋과 트리 셋의 특성에 대해 전보다 익숙해진 느낌이 들어 든든한 느낌도 든다. 어쨌거나 집합과 맵에 대한 문제를 풀어본 김에, 자바 컬렉션 프레임워크에서 제공하는 집합과 관련된 메서드를 정리하고 가면 좋겠다는 생각이 들었다. 대단히 어려운 내용은 없지만, 그림과 함께 하나씩 정리하자. 먼저, 아래와 같은 셋 두 개를 준비한다. public class example { public static void main(String[] args) { Set treeSet = new TreeSet(List.of(1, 2, 3, 4, 5)); Set hashSet = new HashSet(List.of(4, 5, 6, 7, 8)); } }..
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 문제 소개에 있듯이, 아슬아슬하게 내장 정렬함수로 정렬이 가능하다. 대신 가능한 시간을 줄이기 위해 BufferedReader/BufferedWriter를 사용해야 했다. import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.uti..
Map Map 인터페이스는 Collection 인터페이스와는 다른 저장방식을 가진다. 키(key)와 값(value)을 하나의 쌍으로 저장하는 방식(key-value 방식)이 그것인데, 여기서 키(key)란 실질적인 값(value)을 찾기 위한 이름의 역할을 한다고 할 수 있다. 여기서 중요한 사실은 키는 중복저장될 수 없지만 값은 중복저장이 가능하다는 점이다. 만약 기존의 키와 같은 키에 다른 값을 저장하면, 값이 대체되는 효과가 발생한다. Map 인터페이스를 구현한 클래스는 HashMap, HashTable, TreeMap, SortedMap등이 있고, 공통으로 사용할 수 있는 메서드는 다음과 같다. HashMap HashMap 클래스는 Map 컬렉션 클래스에서 가장 많이 사용되는 클래스이다. Hash..
Set Set 인터페이스를 구현할 앞으로의 모든 Set 컬렉션 클래스는 다음과 같은 공통점을 갖는다. 데이터의 순서가 유지되지 않는다. 데이터의 중복 저장을 허용하지 않는다. Set 컬렉션에 속하는 클래스는 다음과 같다. HashSet TreeSet 또한, 위 클래스에서 공통으로 사용할 수 있는 메서드는 다음과 같다. 추가로, 앞서 살펴보았던 List 클래스와 마찬가지로 컬렉션 인터페이스의 메서드를 상속받아 사용한다. HashSet HashSet 클래스는 Set 클래스 중에 가장 많이 사용되는 클래스이다. Set 인터페이스를 물려받아 데이터의 순서가 유지되지 않고, 중복 저장을 허용하지 않는다. 해시 알고리즘(Hash Algorithm)을 사용하여 검색 속도가 매우 빠르다는 장점이 있으며, 내부적으로는 ..
List List 인터페이스를 구현할 앞으로의 모든 List 컬렉션 클래스는 다음과 같은 공통점을 갖는다. 데이터의 순서가 유지된다(인덱스로 관리된다). 데이터의 중복 저장을 허용한다. List 컬렉션에 속하는 클래스는 다음과 같다. ArrayList LinkedList Vector Stack 이어서 위 클래스에서 공통으로 사용 가능한 메서드를 보자. 또한 앞서 살펴보았던 컬렉션 인터페이스의 메서드 또한 상속받아 사용할 수 있는데, 이는 다음과 같다. ArrayList ArrayList는 가장 많이 사용되는 컬렉션 클래스로서, 내부적으로 배열을 이용하여 요소를 정리한다. 따라서 추가된 객체는 인덱스로 관리되지만, 배열과는 달리 ArrayList는 크기(용량)가 고정되지 않는다는 차이점이 있다. 또한 앞서..
자바에서 컬렉션이란 데이터의 집합, 혹은 그룹, 자료 구조를 의미한다. 컬렉션 프레임워크는 그 컬렉션을 구현하기 위한 메서드, 클래스와 인터페이스의 집합이라고 할 수 있으며 자료 구조와 데이터처리 알고리즘을 클래스로 구현한 것이라고 이해해도 된다. 컬렉션 프레임워크는 주요 인터페이스로 다음의 세 가지를 제공하는데, List 인터페이스 Set 인터페이스 Map 인터페이스 이 중에서 List와 Set 인터페이스는 Collection 인터페이스를 상속받으며 Map은 구조상의 차이가 있다. 각각의 특징을 조금 더 살펴보면 다음과 같다. List 데이터의 순서가 유지되며, 중복 저장이 가능한 컬렉션을 구현하는데 사용된다. Arraylist, Vector, Stack, LinkedList등이 List 인터페이스를 ..
- Total
- Today
- Yesterday
- 유럽여행
- spring
- java
- 알고리즘
- 칼이사
- 세계여행
- 기술면접
- 파이썬
- 자바
- 스트림
- 남미
- 지지
- 맛집
- 여행
- Python
- 백준
- 세계일주
- 야경
- Backjoon
- 리스트
- 세모
- RX100M5
- 면접 준비
- 유럽
- BOJ
- 스프링
- 중남미
- Algorithm
- a6000
- 동적계획법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |