티스토리 뷰


* 본 게시물은 HeadFirst Java 책을 공부목적으로 정리한 것 입니다.

6.자바 API를 알아봅시다.

자바에는 클래스가 수백 개 내장되어있다. 늦게 출근하고 일찍 퇴근하고 싶다면 자바API를 잘 쓰면 된다. Core Java Library는 클래스를 잔뜩 쌓아놓은 것과 비슷함.

배열만으로는 부족할 때

ArrayList 클래스는 핵심 자바 라이브러리 (API)에 들어있음.

내장된 클래스는 모두 미리 컴파일이 된 상태로 제공 됨.


*ArrayList 자주 쓰는 메소드

add(Object elem): 객체 매개변수를 목록에 추가

remove(int index): index매개변수로 지정한 위치에 있는 객체를 제거

remove(Object elem): 주어진 객체가 ArrayList에 있으면 그 객체를 제거

contains(Object elem): 객체 매개변수 elem에 매치되는 것이 있으면 “참”을 리턴

isEmpty(): 목록에 아무 원소도 없으면 “참”을 리턴합니다.

indexOf(Object elem): 객체 매개변수(elem)의 인덱스 또는 -1을 리턴

size(): 현재 목록에 들어있는 원소의 개수 리턴

get(int index): 주어진 index 매개변수 위치에 있는 객체를 리턴


*ArrayList로 할 수 있는 것

1. 새로 만듭니다.

ArrayList<Egg> myList = new ArrayList<Egg>();

> 새로운 ArrayList 객체가 힙에 만들어 짐. 아직은 비어있음.


2. 뭔가를 집어넣습니다.

Egg s = new Egg();

myList.add(s);

> 이제 그 ArrayList 객체는 Egg객체를 담기 위한 ‘상자’가 됨.


3. 다른 것을 또 집어넣습니다.

Egg b = new Egg();

myList.add(b);

> 두번째 Egg 객체를 담기위해 ArrayList 객체가 더 커짐.


4. 몇 개가 들어가 있는지 알아냅니다.

Int theSize = myList.size();

> ArrayList에는 객체가 두 개 들어있기 때문에 size() 메소드에서는 2를 리턴.


5. 어떤 것이 안에 들어있는지 찾아냅니다.

Boolean isIn = myList.contains(s);

> ArrayList에 ‘s’로 표현되는 Egg객체가 들어있기 때문에 contains()에서 참(true)를 리턴.


6. 어떤 것의 위치(즉 인덱스)를 찾아냅니다.

Int idx = myList.indexOf(b);

> ArrayList의 첫번째 인덱스는 0이고 ‘b’로 참조할 수 있는 객체는 목록에 두번째로 추가되었기 때문에 indexOf()에서 1을 리턴.


7. 비어있는지 확인합니다.

boolean empty = myList.isEmpty();

> 비어있지 않으니까 false를 리턴.


8. 목록에 들어있는 것을 제거합니다.

myList.remove(s);

API 패키지

자바 API에서 클래스는 패키지 단위로 묶여있습니다.

ex) java.lang(필수요소), java.util(자바 유틸리티), javax.swing(스윙 클래스)

API에 들어있는 클래스를 사용하려면 그 클래스가 어떤 패키지에 들어있는지 알아야 함.


자바 라이브러리에 있는 클래스는 모두 패키지에 들어있음.

패키지에는 javax.swing같은 이름이 있음. ArrayList는 각종 유틸리티 클래스를 모아놓은 java.Util이라는 패키지에 들어있음.


코드를 만들 때 API에 들어있는 클래스를 사용하려면, 그냥 자신이 직접 만든 클래스인 것처럼 처리하면 됨. 한가지 다른 점은 코드 어딘가에서 그 코드에서 사용할 라이브러리 클래스의 전체 이름, 즉 패키지명 + 클래스명을 지정해야 함.


System(System.out.println() 등), String, Math(Math.random()등)은 사실 java.lang 패키지에 들어있는 클래스.


ArrayList의 전체 이름 = java.util.ArrayList   (패키지명 클래스명)


Java.lang 패키지는 import 선언문을 쓰지 않아도 자동으로 들어감.

Java.lang에 들어있는 클래스는 워낙 기초적이기 때문에.



댓글