본문 바로가기

Study/Java

Java16_컬렉션프레임워크

728x90

[Wrapper 클래스]

경우에 따라 프리미티브 타입의 데이터를 객체로 만들어야 할 때가 있습니다. 이 클래스들은 프리미티브 타입의 값을 감싸는 역할을 하기 때문에 Wrapper Class 라고 합니다. Wrapper Class는 java.lang 패키지에 속합니다.

 

1. Wrapper Class 종류와 사용방법

1-1. Wrapper Class 종류

클래스 Primitive type
Byte byte
Short short
Integer int
Long long
Character char
Float float
Double double
Boolean boolean

 

1-2. Wrapper Class 의 사용방법과 메소드 

Wrapper 타입의 객체에는 한 개의 프리미티브 타입 리터럴을 담을 수 있으며, 그 값은 생성자 파라미터로 전달해야 합니다. 이렇게 전달된 값은 Wrapper 클래스의 메소드로 참조할 수 있는데, 이 메소드들은 프리미티브 타입 이름 뒤에 Value(); 를 붙인 형태입니다.

 

Wrapper 객체의 생성과 메소드를 이용한 필드 값 호출 Integer

Wrapper Class

ex.

예제

참고. 생성자 파라미터를 문자열로 전달해도 가능합니다.

즉, Integer obj1 = new Integer("12"); 처럼 사용해도 프리미티브 타입으로 변경됩니다.

 

2. Boxing, Unboxing

프리미티브 타입의 값을 Wrapper 객체로 만드는 것을 Boxing 이라고 하며, 그 반대를 Unboxing 이라고 합니다.

자바 프로그램에서는 대부분의 경우 자동으로 Boxing/Unboxing 되어 스스로 형변환이 이루어집니다.

다음과 같이 구분할 수 있습니다.

Boxing Integerobj = new Integer(37 ); Primitive type 값에서 Wrapper 객체로 자동 Boxing
Unboxing int num = obj.intValue(); Wrapper 객체에서 Primitive type 으로 자동 형변환

ex.

Boxing, Unboxing

 

[컬렉션 프레임워크(Collection Framework)]

C.F. 는 참조자료형을 배열로 처리하는 클래스들을 의미합니다. 배열의 개수를 미리 설정하지 않는 특징이 있습니다.

 

1. 리스트 계열

리스트는 자료를 일렬로 늘어놓은 배열 형태를 의미합니다.

‣ 리스트 구조를 나타내는 클래스

클래스 내 용
ArrayList 객체 내부에 있는 배열에 데이터를 저장
LinkedList 인접데이터들이 서로 위치를 가리키며 데이터 저장

참고. java.util 패키지에 속합니다.

 

2. ArrayList 클래스

2-1. ArrayList 클래스 사용법

ArrayList 클래스를 이용하여 문자열을 저장할 리스트를 만들려면 입력받을 자료의 타입을 지정해야 합니다.

 

• 형식

ArrayList

cf. 타입 파라미터에는 레퍼런스 타입만 사용할 수 있습니다. 또한 제네릭(Generic)이라고도 부릅니다.

 

ex.

다음과 같이 사용할 수 있습니다.

ArrayList list = new ArrayList();

cf1. 자동적으로 10개의 문자열을 저장할 수 있는 배열이 생성되며

데이터의 수가 늘어나면 저장공간도 자동으로 늘어납니다.

cf2. 배열의 크기를 지정하고자 할 경우 생성자 파라미터로

다음과 같이 크기를 전달합니다. new ArrayList(30);

 

2-2. ArrayList 클래스의 메소드

메소드 내용 사용 예
add(); 데이터 추가, 인수가 타입 파라미터의 자료형과 일치해야 합니다. list.add("사과");
list.add(1, "딸기");
get(); 데이터 리턴, 인수는 인덱스 값입니다. 데이터 범위에 주의합니다. list.get(2);
size(); 데이터 개수 리턴 list.size();
set(); 데이터 수정 list.set(1, "오렌지");
remove(); 데이터 삭제, 데이터를 인수로 전달하여 삭제가능 list.remove(2);
list.remove("키위");
indexOf(); 동일한 값을 갖는 첫 번째 데이터의 인덱스 리턴 list.indexOf("사과");
lastIndexOf(); 동일한 값을 갖는 마지막 데이터의 인덱스 리턴 list.lastIndexOf("키위");

 

ex1. ArrayList 클래스 사용예 - 데이터 입/출력

데이터 입/출력

 

ex2. ArrayList 클래스 사용예 - 데이터 삽입/수정/삭제

데이터 삽입/수정/삭제

 

ex3. ArrayList 클래스 사용예 - 데이터 조회

데이터 조회

 

3. LinkedList 클래스

3-1. LinkedList 사용법

LinkedList 클래스는 ArrayList 클래스와 사용방법이 동일합니다.

 

ex. LinkedList 클래스 사용예

LinkedList

cf. ArrayList 클래스는 인덱스로 데이터 항목을 찾는 일이 빈번할 경우 사용하고,

LinkedList 클래스는 데이터의 삽입/삭제가 빈번할 경우에 사용합니다.

반응형

'Study > Java' 카테고리의 다른 글

객체지향 프로그래밍 6장(1강 ~ 5강)  (0) 2022.06.02
Java18_멀티스레드  (0) 2022.05.14
Java15_내장클래스  (0) 2022.05.14
Java14_수식어  (0) 2022.05.14
Java13_인터페이스&구현  (0) 2022.05.14