[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
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.
[컬렉션 프레임워크(Collection Framework)]
‣ C.F. 는 참조자료형을 배열로 처리하는 클래스들을 의미합니다. 배열의 개수를 미리 설정하지 않는 특징이 있습니다.
1. 리스트 계열
‣ 리스트는 자료를 일렬로 늘어놓은 배열 형태를 의미합니다.
‣ 리스트 구조를 나타내는 클래스
클래스 | 내 용 |
ArrayList | 객체 내부에 있는 배열에 데이터를 저장 |
LinkedList | 인접데이터들이 서로 위치를 가리키며 데이터 저장 |
참고. java.util 패키지에 속합니다.
2. ArrayList 클래스
2-1. 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 클래스 사용예
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 |