Notice
Recent Posts
Recent Comments
Link
passion and relax
[JAVA] 06. 자바 라이브러리 (전부 다 직접 만들어서 쓸 필요는 없습니다) 본문
ArrayList
. add(Object elem) : 객체 매개변수(elem)를 목록에 추가
. remove(int index) : index 매개변수로 지정한 위치에 있는 객체를 제거
. remove(Object elem) : 주어진 객체가 ArrayList에 있으면 그 객체를 제거
. contains(Object elem) : 객체 매개변수 elem에 매치되는 것이 있으면 true
. isEmpty() : 목록에 아무 원소도 없으면 true
. indexOf(Object elem) : 객체 매개변수(elem)의 인덱스 또는 -1을 리턴. if (index >= 0) {} 과 함께 자주 사용됨.
. size() : 현재 목록에 들어있는 원소의 개수 리턴
. get(int index) : 주어진 index 매배변수 위치에 있는 객체를 리턴
배열과 ArrayList의 비교
. 선언
String[] myArray = new String[3]; //선언 시, 미리 크기 지정이 필요함!!
ArrayList<String> myArrayList = new ArrayList();
ArrayList<String> myArrayList = new ArrayList<String>();
. 추가
myArray[2] = b; //인덱스를 지정해야 한다.
myArrayList.add(b);
. 삭제
myArray[2] = null; //null 처리 해줘야 한다.
myArrayList.remove(b) //크기가 동적으로 바뀐다.
. contains() 메소드
//배열
boolean isIn = false;
for (String item : myList) {
if (b.equals(item)) {
isIn = true;
break;
}
}
//ArrayList
boolean isIn = myList.contains(b);
. size() 메소드
int theSize = myList.length; //length는 배열에서 제공하는 단 하나뿐인 인스턴스 변수! 메소드 아님!
int theSize = myList.size(); //size()는 ArrayList에서 제공하는 많은 메소드 중 하나!
자바 라이브러리 = 자바 API
. 자바 라이브러리에 있는 클래스는 모두 패키지 안에 들어있다. 왜?
방대한 클래스 더미를 분류할 수 있다.
namescope가 지정되어, 같은 이름의 클래스 생성에 의한 충돌을 피할 수 있다.
어느 정도의 보안 제공 (나중에..)
. 원래는 이 패키지명 까지 다 적어야 한다. (단! java.lang 패키지 제외)
java.util.ArrayList<Dog> foo = new java.util.ArrayList<Dog>();. 싫으면, import를 미리 해줘라
import java.util.ArrayList; ArrayList<Dog> foo = new ArrayList();
. import 하면 import한 클래스 때문에 전체 클래스가 커지고, 추가되어 컴파일 되는 것인가?
=> 아니다. 단지 namespace를 정해주는 역할만 할 뿐이다. C의 include와는 다르다.
. "x" 가 붙어 있는 패키지들
=> 확장 패키지(extension package) : 표준과 비표준의 2가지로 나뉨. 비표준은 무시해도 됨.
=> 여기서 확장 표준 패키지가 기본 패키지로 승격 되면서, sun에서는 x를 떼라고 요청.
=> 개발자들이 x를 떼 내는 것에 대해 너무 힘들어 하여, 그냥 그 명칭이 유지되고 있는 패키지들.
=> javax.swing 이 그 예..
'프로그래밍' 카테고리의 다른 글
| [JAVA] 08. 심각한 다형성 (추상 클래스와 인터페이스) (1) | 2024.05.21 |
|---|---|
| [JAVA] 07. 객체마을에서의 더 나은 삶 (미래를 준비합시다) (0) | 2024.05.21 |
| [JAVA] 05. 메소드를 더 강력하게 (흐름 제어, 연산 등) (0) | 2024.05.20 |
| [JAVA] 04. 객체의 행동 (객체의 상태가 메소드의 속성에 미치는 영향) (0) | 2024.05.20 |
| [JAVA] 03. 네 변수를 알라 (원시 변수와 레퍼런스) (0) | 2024.05.20 |