Java의 기본 문법에서 지원하는 배열에는 제약사항이 많다. 요소를 추가하려면 길이를 늘려야 하고 중간에 다른 값 하나를 추가하려하면 코드를 수정해야 한다. 이외에도 불편한 점이 많다.
java.util 패키지에는 객체 배열을 편리하게 다룰 수 있도록 해주는 ArrayList 클래스가 구현되어 있다. ArrayList 클래스는 주요 클래스로 자세히 다루어야 하지만 이번에는 일반 배열과 비교하는 목적으로 단지 사용법을 보도록 한다.
1. ArrayList로 객체 배열 생성
ArrayList<Student> stus = new ArrayList<Student>();
ArrayList클래스의 사용을 위해서는 컴파일러에게 ArrayList클래스의 위치를 알려주어야 한다. 코드의 가장 상단에 다음 구문을 추가해야한다.
import java.util.ArrayList;
java.util 패키지는 유용한 자료구조 & 알고리즘 클래스를 지원하는 패키지다.
2. ArrayList 배열 사용
package classpart;
public class Student {
int studentID;
String name;
public Student() {};
public Student(int studentID, String name) {
this.studentID = studentID;
this.name = name;
}
public int getStudentID() {
return studentID;
}
public void setStudentID(int studentID) {
this.studentID = studentID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void showInfo() {
System.out.println(studentID+", "+name);
}
}
package classpart;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Student> stus = new ArrayList<Student>(); //ArrayList로 Studet타입 객체 생성하고 stus 참조변수가 참조
//새로운 배열요소를 추가하기 위한 add()메소드
stus.add(new Student(1001, "John"));
stus.add(new Student(1002, "Kelly"));
for(int i=0; i<stus.size(); i++) { //객체 배열의 길이를 반환하는 size() 메소드
Student stu = stus.get(i); // 객체 배열의 index i 요소를 반환하는 get() 메소드
stu.showInfo();
}
}
}
자주 사용하는 메소드는 기억해두면 편하다.
JavaDoc에서 ArrayList에 관한 설명을 한 번 읽어보는 것이 도움될 것이다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
(Java) 30 - 메소드 오버라이딩 (0) | 2020.05.17 |
---|---|
(Java) 29 - 상속 (0) | 2020.05.17 |
(Java) 27 - 배열 복사 (0) | 2020.05.17 |
(Java) 26 - 객체 배열 (0) | 2020.05.17 |
(Java) 25 - 배열 (0) | 2020.05.17 |