Coding 공부/Java

[Java_Summary] Wrapper Class, Auto Boxing, Auto Unboxing, Collection, generic, Vector<>, 컬렉션 메소드, Iterator, Enumeration, Stack<>

CBJH 2024. 2. 23. 11:36
728x90
반응형

1. 레퍼 클래스(Wrapper Class)

  • "레퍼 클래스(Wrapper Class)"는 기본 자료형을 객체로 다루기 위해 사용하는 클래스를 말합니다
  • 프로그래밍을 하다 보면, 이러한 기본 자료형도 객체로 다뤄야 할 필요가 종종 있습니다. 예를 들어, 매개변수로 객체만을 요구하는 메소드에 기본 자료형 값을 전달해야 하거나, 기본 자료형 값을 객체의 컬렉션에 저장해야 할 때 등이 이에 해당합니다.
  • 레퍼 클래스는 기본 자료형의 값을 객체 내부에 저장하며, 이를 통해 기본 자료형이 객체로서의 여러 기능을 가지게 됩니다. 예를 들어, 객체 간의 비교, 객체의 저장 및 전송, 객체에 대한 메소드 호출 등이 가능해집니다.
  • byte -> Byte
  • short -> Short
  • int -> Integer
  • long -> Long
  • float -> Float
  • double -> Double
  • char -> Character
  • boolean -> Boolean

1.1 오토박싱(Auto Boxing)과 오토언박싱(Auto Unboxing)

  • 자바는 오토박싱(Auto Boxing)과 오토언박싱(Auto Unboxing) 기능을 제공하여, 기본 자료형과 레퍼 클래스 간의 변환을 자동으로 처리합니다. 오토박싱은 기본 자료형을 자동으로 해당 레퍼 클래스의 객체로 변환해주며, 오토언박싱은 레퍼 클래스의 객체를 자동으로 기본 자료형 값으로 변환해줍니다.

 

오토언박싱 예제

 

 

2. 컬렉션(Collection)

 

요소(element) 객체들의 저장소

배열과 비슷하지만 구분되는 요소

가변 크기로서 객체의 개수를 염려할 필요가 없다.

컬렉션 내의 한 객체가 삭제되면 컬렉션이 자동으로 자리를 옮겨준다.

 

2.1 컬렉션을 위한 자바 인터페이스와 클래스

파이썬의 문자열, 리스트, 딕셔너리, 튜플과 같이 저장 자료형을 자바에서도 갖는다.

2.2 컬렉션은 제네릭(generic) 기법으로 구현됨

  • 제네릭 타입은 <>안에 객체타입을 넣어 사용한다. 
  • 일반 제네릭 타입 : <E>, <K>, <V> 
  • 구체적인 타입 : <Integer>, <String>

 

2.3 Vector<E>

  • Vetor<>는 파이썬의 리스트와 비슷하다. 인덱스를 가지고 여러 타입 자료형의 집합이다.
  • java.util.Vector
  1.  <E>에서 E 대신 요소로 사용할 특정 타입으로 구체화
  •  여러 객체들을 삽입, 삭제, 검색하는 컨테이너 클래스
  1.  배열의 길이 제한 극복
  2.  원소의 개수가 넘쳐나면 자동으로 길이 조절
  •  Vector에 삽입 가능한 것
  1.  객체, null
  2.  기본 타입은 Wrapper(저번 시간에 배웠던 기본 자료형 클래스 타입) 객체로 만들어 저장
  •  Vector에 객체 삽입
  1.  벡터의 맨 뒤에 객체 추가
  2.  벡터 중간에 객체 삽입
  •  Vector에서 객체 삭제
  1.  임의의 위치에 있는 객체 삭제 가능 : 객체 삭제 후 자동 자리 이동

2.4 Vector<Interger> 컬렉션의 내부 구성

 

  • Integer 자료형만을 요소로 갖는다.

 

2.5 Vector 클래스의 주요 메소드

2.6 Vector 클래스 예제

 

2.7 Iterator

  •  컬렉션 프레임워크에서 저장된 요소를 읽어오는 방법을 표준화하기 위한 역할(인터페이스)
  •  Collection의 하위 컬렉션들이 소유 -> Iterator 타입의 객체를 반환하는 메소드를 이미 구현
  •  List, Set계열에 구현(Map은 없음)
  •  주로 읽기 전용으로 사용한다.

 

Iterator의 주요멤버

  1.  boolean hasNext()
  2.  T next()
  3.  remove()

2.8  Enumeration

Enumeration 예제

 

 

2.9 Stack<String>

예제

 

Stack<>과 주요 메소드

 

 

 

교제 403p 예제풀이

예외처리, 내부클래스, 기본API클래스(equals(), hashCode(), toString() 오버라이딩) 확인문제 풀기