[Java] Java에서 Map (HashMap, LinkedHashMap, TreeMap), Stack, Queue란?
·
Java
자바의 컬렉션 프레임워크는 개발자에게 효율적이고 강력한 자료 구조를 제공합니다.그 중에서도 자주 사용되는 Map, Stack, Queue, Deque에 대해서 각 자료 구조의 특성과 구현체, 그리고 코드 예제를 포함하여 자세하게 살펴보겠습니다. 1. Map이란?Map은 키와 값의 쌍을 저장하는 자료 구조입니다.키는 중복될 수 없으며, 이를 통해 데이터를 매우 빠르게 검색할 수 있습니다. 자바에서는 Map을 인터페이스로 제공하고 있습니다.Map 인터페이스의 주요 메서드는 다음과 같습니다.메서드설명put(K key, V value)지정된 키와 값을 맵에 저장한다. (같은 키가 있으면 값을 변경)putAll(Map m)지정된 맵의 모든 매핑을 현재 맵에 복사한다.putIfAbsent(K key, V value..
[Java] Java에서의 Set이란? - HashSet, LinkedHashSet, TreeSet
·
Java
자바를 사용하면서 Set 자료구조를 한 번도 안 써본 개발자는 거의 없다고 생각합니다.그런데 "HashSet, LinkedHashSet, TreeSet" 이 세가지가 뭐고 어떻게 다른지 공부하고 알아가볼려고 합니다. 1. Set 이란?Set은 수학의 집합 개념을 그대로 프로그래밍에 도입한 것입니다. 가장 중요한 특징은 바로 "중복된 값이 하나도 없다"라는 점입니다. 1-1. 자바에서의 Set은?일단 자바에서 Set은 인터페이스이다. Set 인터페이스는 Collection 인터페이스를 상속하고 있습니다. Collection 인터페이스는 자바에서 다앙햔 컬렉션, 즉 데이터 그룹을 다루기 위한 메서드를 정의합니다. List, Set, Queue 와 같은 다양한 하위 인터페이스와 함께 사용되며, 이를 통해 ..
[Java] 원시 타입과 참조 타입 정리: 오토박싱과 언박싱 쉽게 이해하기
·
Java
자바에서는 데이터 타입을 크게 원시 타입(Primitive Type)과 참조 타입(Reference Type)으로 나눌 수 있다.이 두 타입은 메모리 관리와 작동 방식에서 중요한 차이가 있으며, 오토박싱과 언박싱은 이 두 타입 간의 상호작용을 돕는 중요한 개념이다. 이 글에서는 원시 타입과 참조 타입의 차이, 그리고 오토박싱과 언박싱에 대해 자세히 살펴보겠다. 1. 원시 타입 (Primitive Type)원시 타입(Primitive Type)은 자바에서 기본적으로 제공하는 타입으로, 가장 간단한 형태의 데이터를 저장하는 데 사용된다. 이 타입은 메모리에서 값 자체를 직접 저장하며, 성능이 뛰어나다. 자바의 원시 타입은 총 8가지이며, 각각의 타입은 고유한 크기와 범위를 가지고 있다. 자바의 원시 타입 8..
[Java] 자바에서의 배열 복사 방법( arraycopy(), copyOfRange(), copyOf() )
·
Java
자바에서 배열 복사 방법을 설명하겠습니다. ​ 1. for문을 사용한 배열 복사 방법 가장 기초적인 방법으로 for문으로 돌면서 값을 하나씩 넣어주는 방법이다. ​ 실행 결과는 당연히 1, 2, 3, 4, 5가 나온다. ​ ​ 2. System.arraycopy() 를 이용한 방법 arraycopy의 매개변수를 설명을하자면 num1 배열의 index 0 번부터 num2 배열의 index 0번부터 num1.length ( == 5) 만큼 배열의 복사한다는 뜻이다. ​ 당연히 실행결과는 1,2,3,4,5 가 나온다. ​ 3. Arrays.copyOfRange()를 이용한 방법 Arrays클래스의 copyOfRange함수를 이용한 배열 복사 방법이다. copyOfRange( 복사할 배열, 처음 인덱스, 마지막..
[Java] String.split 함수
·
Java
알고리즘 문제를 풀다 split에 대해 새로운 사실을 알게되어 글을 쓰게 됐다. ​ Java에서 split 함수를 알아보겠다. 문자열을 자르고(분할하고) 배열에 반환하고 싶을 때 많이 사용하는 함수이다. 매개변수로는 regex 즉, 정규표현식이 들어갈 수 있고 정규표현식과 limit (정수) 가 함께 들어갈 수 있다. ​ 먼저 매개변수에 정규표현식만 들어간 방식이다. String으로 선언한 aPhoneNumber 에서 "-" 기준으로 잘라 String 배열 a에 반환하는 방식이다. 실행결과는 아래와 같다. ​ ​ 그 다음은 limit 매개변수 까지 들어간 방식이다. limit는 뜻 그대로 제한을 두는 매개변수 이며 문자열을 자르고 배열을 반환할 때 배열의 갯수를 제한하는 것이다. 문자열 bPhoneNum..
[Java] 래퍼(Wrapper) 클래스
·
Java
객체지향 개념에서 모든 것은 객체로 다루어져야 한다. 그러나 자바에서는 8개의 기본형(int, boolean 등등)을 객체로 다루지 않는데 이것이 바로 자바가 완전한 객체지향 언어가 아니라는 얘기를 듣는 이유이다. 그 대신 보다 높은 성능을 얻을 수 있었다. 때로는 기본형 변수도 어쩔 수 없이 객체로 다뤄야 할 하는 경우가 있다. 예를들면, 매개변수로 객체를 요구할 때, 기본형 값이 아닌 객체로 저장해야할 때, 객체간의 비교가 필요할 때 등등의 경우에는 기본형 값들을 객체로 변환하여 작업을 수행해야 한다. 이때 사용되는 것이 래퍼(Wrapper) 클래스 이다. 8개의 기본형을 대표하는 8개의 래퍼클래스가 있는데, 이 클래스들은 이용하면 기본형 값을 객체로 다룰 수 있다. 기본형 래퍼클래스 기본형 래퍼클래..