ArrayList 사용하기
MVC 모델, 뷰, 컨트롤이 분리되어 있지 않는 언어는 사장되고 있습니다. 즉 rs형태를 사용하면 안된다는 겁니다.
그래서 ArrayList를 사용합니다. Struts2가 MVC 형태가 되겠습니다. Spring은 아닌 것 같습니다.
Array는 배열, List는 데이터를 일렬로 늘어놓은 자료구조를 말합니다.
Array(배열)은 같은 타입에 많은 변수를 대신할 수 있는 자료구조입니다. ArrayList는 글쎄요. 하하하.
ArrayList는 Array(배열)에 비해 속도는 느리지만 동적 배열, 불필요할 때 삭제 가능, 아무 타입이나 사용가능, 정렬 가능 등의 장점이 있다고 합니다. 그리고 ArrayList는 객체이기 때문에 메소드(add, contains, esEmpty, remove, size, indexOf 등)를 가지고 있죠.
■ ArrayListMain.java
package firstpackage;
import java.util.ArrayList;
public class ArrayListMain {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
//<String>은 type입니다. 모양이 그지같지요. 타입이니까 <String> 말고 <integer>도 되겠습니다.
String으로 되어 있는 ArrayList라고 생각하면 쉽지요.
list.add("딸기");
list.add("포도");
list.add("키위");
list.add("복숭아");
list.add("오렌지");
list.add("수박");
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
System.out.println("----");
list.remove(1); // index는 0부터 시작합니다.
list.remove(3); // 1 포도가 사라졌으므로 3에 해당하는 것은 오렌지입니다.
list.add("귤");
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
}
}
// 이정도 만으로는 배열과 비슷합니다. 대신 bean과 함께 사용하면 테이블 처럼 만들어져 근사해집니다.
결과
10대군요.
20대군요.
일단 ArrayList는 모양이 그지같이 생겼습니다. 그래서 많이들 혼동하지요.
선언
private static ArrayList<integer> mArrayList; <-- 정수객체들로 이루어진 ArrayList 객체를 만들겠다는 의미
ArrayList 생성
mArrayList = new ArrayList<integer>();
ArrayList 값 추가
mArrayList.add(1);
mArrayList.add(2);
ArrayList 갯수(크기) 확인
mArrayList.size();
ArrayList 값 확인
mArrayList.get(i);
ArrayList 특정 index 값 제거
mArrayList.remove(0); <-- 0번째 index가 지워지면서 자동으로 1번이 0번째 index가 됨.
ArrayList 특정 index 값 추가
mArrayList.add(0, 7777); <-- 0번째 index가 추가되고 나머지 index들은 뒤로 밀림.
ArrayList 특정 index 값 수정
mArrayList.set(0, 77779);
ArrayList 값 전체 삭제
mArrayList.clear();
ArrayList의 값 존재 여부 확인
boolean isEmpty = mArrayList.isEmpty();
인터넷에 재미있는 예가 있어 소개합니다.
import java.util.ArrayList;
public class Test {
public static void main(String[] args)
{
ArrayList<Cat> mList = new ArrayList<Cat>();
// import를 하지 않으면 java.util.ArrayList<Cat> mList = new java.util.ArrayList<Cat> (); 사용
Cat c = new Cat();
Cat d = new Cat();
mList.add(c);
mList.add(d);
int sizeOfArrayList = mList.size();
int index = mList.indexOf(c);
boolean isIn = mList.contains(c);
boolean isEmpty = mList.isEmpty();
mList.remove(c);
mList.remove(d);
}
}