[JAVA] Hash
List와 Set List 요소들의 순차적인 컬렉션, 특정 순서를 가지고 중복을 허용한다. 순서 유지 → 특정 순서를 유지한다 이 순서는 요소가 추가된 순서를 반영할 수 있다. 중복 허용 → 동일한 값이나 객체의 중복을 허용 인덱스 접근 → 리스트의 각 요소는 인덱스를 통해 접근할 수 있다. 보통 0부터 시작한다. List&l...
List와 Set List 요소들의 순차적인 컬렉션, 특정 순서를 가지고 중복을 허용한다. 순서 유지 → 특정 순서를 유지한다 이 순서는 요소가 추가된 순서를 반영할 수 있다. 중복 허용 → 동일한 값이나 객체의 중복을 허용 인덱스 접근 → 리스트의 각 요소는 인덱스를 통해 접근할 수 있다. 보통 0부터 시작한다. List&l...
추상화와 다형성 ArrayList와 LinkedList 실습내용을 기반으로 공통 기능을 인터페이스로 뽑아서 추상화하면 다형성을 활용한 다양한 이득을 얻을 수 있다. 같은 기능을 제공하는 메서드를 MyList 인터페이스로 뽑아보자. public interface MyList<E> { //같은 기능을 제공하는 메서드를 인터페이스로 뽑아보자...
노드(Node) 배열은 크기를 미리 지정해야 하며, 중간에 데이터를 삽입/삭제할 때 성능에 제약이 있음. 이를 해결하기 위해 동적으로 메모리를 확보하고, 각 데이터를 노드(Node)로 만들어 연결하는 구조가 연결 리스트(Linked List)다. 노드는 내부에 데이터와 다음 노드에 대한 참조를 가지고 있다. 각각의 노드가 참조를 통해 연...
컬렉션 프레임워크 프로그래밍을 하면 데이터를 여러 개 저장하고 처리할 일이 많다. 이럴 때 쓰는 구조가 배열인데, 배열은 몇 가지 한계가 존재한다. 배열은 크기를 미리 지정해야 한다. → 동적으로 늘어나지 않음 추가/삭제가 번거로움 검색, 정렬, 중복 체크 등 다양한 기능 부재 이런 한계를 해결하기 위해 자바에서는 다양한 자료구조를 ...
Generic Generic 을 사용하는 이유 코드 재사용성 증가: 동일한 로직을 다양한 타입에 대해 반복해서 작성하지 않아도 됨 → List<String> List<Integer> 등 동일한 List 로직 재사용 타입 안정성 향상: 컴파일 타임에 타입 체크 가능 → 잘못된 ...
예외처리가 필요한 이유 외부 시스템(서버, DB, 파일시스템) 은 항상 실패 가능성이 존재 ex) 서버 연결 실패, 네트워크 끊김 등 정상 흐름과 예외 흐름이 섞이면 가독성이 떨어짐 외부 자원을 사용한 후 연결을 해제해 외부 자원을 반드시 반납해야 한다. 예외 처리는 오류 발생 시 프로그램이 비정상 종료되지 않고, 정상 흐름...
중첩 클래스 중첩 클래스는 바깥 클래스의 안에 있지만, 바깥 클래스와 상관 없는 전혀 다른 클래스 class Outer { ... //중첩 클래스 class Nested { ... } } 중첩 클래스의 종류 정적 중첩 클래스 - static 이 붙고, 바깥 클래스의 인스턴스에 소속되지 않음 내부 클래스 - stati...
열거형 - ENUM 열거형(Enum Type)을 이해하기 위한 예제를 만들어보자 고객을 3개의 등급으로 나누고, 상품 구매 시 등급별로 할인을 적용한다. (소수점 버림) BASIC → 10% 할인 GOLD → 20% 할인 DIAMOND → 30% 할인 할인등급을 String 으로 표현했을 때의 문제점 문자열은 오타, 유효하...
기본형의 한계와 래퍼 클래스 기본형의 한계 자바는 객체 지향 언어이지만 int, double 같은 기본형(Primitive Type) 은 객체가 아니라 객체 지향의 장점을 온전히 사용할 수 없다. 기본형의 한계를 이해하기 위해, 두 값을 비교해서 다음과 같은 결과를 출력하는 간단한 코드를 작성해보자 public static void main(S...
자바에서 문자열 문자 하나: char char c = 'A'; 자바에서 문자를 다루는 가장 기본적인 타입. char[] arr = {'h', 'e', 'l', 'l', 'o'}; System.out.println(arr); // hello 여러 문자를 다루려면 char[] 을 사용한다. 하지만 char[] 는 직접다루기 불편하...