리스트는 배열과 비슷한 자바의 자료형으로 배열보다 편리한 기능을 많이 가지고 있다.
리스트와 배열의 가장 큰 차이는 크기가 정해져 있지 않고 동적으로 변한다는 점이다. 배열은 크기가 정해져 있다.
List 자료형
List 자료형에는 ArrayList, Vector, LinkedList 등의 List 인터페이스를 구현한 자료형이 있다. 여기서 말하는 List 자료형은 인터페이스인데 인터페이스에 대해서는 뒤에서 자세히 다루도록 한다.
ArrayList pitches = new ArrayList();
pitches.add("133");
※ ArrayList를 사용하기 위해서는 import java.util.ArrayList를 해야 된다.
만약 위치를 정해서 삽입할 경우엔 다음과 같이 코딩하면 된다.
pitches.add(0, "133");
pitches.add(2, "129"); 👈 3번째 위치
2번째 값을 출력하고 싶으면 다음과 같이 한다.
System.out.println(pitches.get(1));
size 메소드는 ArrayList의 갯수를 리턴한다.
System.out.println(pitches.size());
contains 메소드는 리스트 안에 해당 항목이 있는지 판별하여 그 결과를 boolean으로 리턴한다
System.out.println(pitches.contains("142"));
remove 메소드는 2가지 방식이 있다.
(이름은 같지만 입력 파라미터가 다르다)
리스트에서 객체에 해당되는 항목을 삭제하고 삭제한 결과를 boolean으로 리턴한다.
System.out.println(pitches.remove("142"));
수행결과는 다음과 같다.
true
"142"라는 항목이 성공적으로 삭제되고 true를 리턴한다.
인덱스의 항목을 삭제하고 삭제된 항목을 리턴한다.
System.out.println(pitches.remove(0));
수행결과는 다음과 같다.
133
pitches의 첫 번째 항목인 "133"이 삭제된 것이다.
이전에 설명한 ArrayList와 달리 제네릭은 ArrayList라는 자료형 타입 바로 옆에 <String>
과 같은 문구가 있느냐 없느냐의 차이가 있다.
ArrayList
<String>
pitches = new ArrayList<String>
();
위에서 사용한 코드는 pitches가 String만 담을 수 있다는 것을 의미한다.
예를 String 자료형으로 들었지만 <Integer>, <Animal>, <Dog>
등 어떤 자료형도 사용할 수 있다.