The ArrayList Class
아래 문은 List 변수 myList를 선언한다.
처음에 myList는 비어있다. 그러나 초기에는 10개의 요소를 수용할 수 있다.(default 용량)
List<String> myList = new ArrayList<String>();
다음 문은 4개의 문자열을 더하는 것이다. myList.size()의 값은 현재 4이다.
myList.add("Bash"); myList.add("Awful"); myList.add("Jumpy"); myList.add("Happy");
myList.add(2, "Doc");
위 문장은 "Doc" 문자열을 myList의 [2]에 추가한다.
이제 배열의 사이즈는 5가 되었다.
티켓사려고 선 줄에 새치기 하는거랑 같다.
myList.add("Dopey");
"Dopey"를 ArrayList의 마지막에 추가한다.
이제 배열 사이즈는 6이다.
ArrayList로부터 요소를 제거하면 사이즈는 자동적으로 준다. 그리고 다음에 따라오는 요소가 제거된 요소의 공석을 채운다.
티켓줄에서 한명이 떠나는 것과 같다. 뒤에 있는 사람들은 앞으로 오게된다.
myList.remove(1);
위 문장을 사용하면 [1]에 있는 요소가 제거된다. 사이즈 1이 줄어든다.
get 메소드를 사용해서 요소에 접근할 수 있다.
String dwarf = myList.get(2)
위 문장은 myList의 변화 없이 문자열 객체 "Jumpy"를 변수 dwarf에 저장한다.
set 메소드를 이용하면 ArrayList에 값을 저장할 수 있다.
myList.set(2, "Sneezy")
위 문장은 "Sneezy"를 인덱스 2에 저장해 문자열 "Jumpy"를 대체한다. 그러나 변수 dwarf는 여전히 문자열 "Jumpy"를 참조하고 있다.
ArrayList를 검색할 수도 있다.
myList.indexOf("Jumpy")
"Jumpy"가 대체된 후에는 검색의 실패를 나타내는 -1 값을 반환한다.
다음 문장은 값 2를 반환한다.
myList.indexOf("Sneezy")
예시)
import javax.swing.*; import java.util.*; public class Ex_2_1_P64 { public static void main(String[] args) { List<String> myList = new ArrayList<String>(); myList.add("Bash"); myList.add("Awful"); myList.add("Jumpy"); myList.add("Happy"); //총 4개 int n = myList.size(); JOptionPane.showMessageDialog(null, n); // for (int i = 0; i < n; i++) System.out.print(myList.get(i) + "\t"); System.out.println("n = " + n);// 1번 줄. myList.add(2, "Doc"); n = myList.size(); for (int i = 0; i < n; i++) System.out.print(myList.get(i) + "\t"); System.out.println("n = " + n); myList.add("Dopey"); n = myList.size(); for (int i = 0; i < n; i++) System.out.print(myList.get(i) + "\t"); System.out.println("n = " + n); myList.remove(1); n = myList.size(); for (int i = 0; i < n; i++) System.out.print(myList.get(i) + "\t"); System.out.println("n = " + n); String dwarf = myList.get(2); n = myList.size(); System.out.println("dwarf = " + dwarf + "\t" + "n = " + n); myList.set(3, "Sneezy"); n = myList.size(); for (int i = 0; i < n; i++) System.out.print(myList.get(i) + "\t"); System.out.println("n = " + n); int n1 = myList.indexOf("Jumpy"); int n2 = myList.indexOf("Sneezy"); n = myList.size(); System.out.println("n = " + n +"\t" + "n1 = " + n1 + "\t" + "n2 = " + n2); n1 = myList.indexOf("Happy"); System.out.println("n1 = " + n1); } }
'DATA STRUCTURES' 카테고리의 다른 글
Applications of ArrayList (0) | 2014.10.16 |
---|---|
Non-generic ArrayList (0) | 2014.10.09 |
Converting Numeric String to Numbers (0) | 2014.10.09 |
Arrays (0) | 2014.10.09 |
Integer Class (0) | 2014.10.09 |