List 인터페이스
중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현
https://velog.io/@roro/Java-List-ArrayList-LinkedList
ArrayList란?
ArrayList는 자바의 컬렉션 프레임워크의 일부로 List 인터페이스를 상속받은 클래스 중 하나이다.
ArrayList는 한번 생성하면 크기가 고정되는 배열과 다르게 부족한 공간을 자동으로 조정해주는 선형리스트 이다.
배열은 데이터를 추가, 삭제 시 반복문으로 인덱스를 한칸씩 밀거나 당기는 식으로 공간을 조절하지만 ArrayList는 이 과정을 자동으로 처리해주어 사용이 편리하다.
ArrayList 사용법
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<String> list2 = new ArrayList<>(); // 타입 생략 가능
ArrayList<Person> list3 = new ArrayList<>(); // 타입으로 클래스도 가능
선언시 자료의 안정성을 위해 제네릭(Generic)방식으로 타입을 미리 지정해주어 같은 타입의 객체들만 리스트에 추가하도록 할 수 있다.
ArrayList 데이터 추가
ArrayList<Integer> list = new ArrayList<>();
list.add(1); // 데이터 추가
list.add(3);
list.add(1, 2); // 1번 indexdp 2 추가
ArrayList 데이터 삭제
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.remove(2); //2번 인덱스의 데이터 삭제
list.remove(list.indexOf(1)); //1을 가지고 있는 인덱스를 리턴하여 삭제
list.clear(); //리스트의 모든 데이터 삭제
ArrayList 값 가져오기
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(2, 4, 6, 8, 10));
System.out.println(list.get(3)); //3번 인덱스에 위치한 값 출력, 8
System.out.println(list.get(0)); //0번 인덱스에 위치한 값 출력, 2
ArrayList 사이즈 확인
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(2, 4, 6, 8, 10));
System.out.println(list.size()); //5
list.add(12);
System.out.println(list.size()); //6
ArrayList 특정 값을 포함하는지 검색
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int index = list.indexOf(2); //원하는 값의 인덱스를 리턴, 없는 경우 -1 리턴, 1
boolean contains = list.contains(3); // 특정 값이 있는지 확인, true
ArrayList 값 출력
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
System.out.println(list); //list 전체 출력
System.out.println(list.get(3)); //3번 인덱스에 위치한 값 출력
for (int item: list) {
System.out.print(item + " "); //1 2 3 4 5
}
Iterator iter = list.iterator(); //Iterator를 사용하는 경우
while (iter.hasNext()) {
System.out.print(iter.next() + " "); //1 2 3 4 5
}
[참고]
https://velog.io/@rara_kim/Java-ArrayList-%EC%82%AC%EC%9A%A9%EB%B2%95
'Java' 카테고리의 다른 글
HashSet 사용법(개념,특징,사용법) (0) | 2024.02.20 |
---|---|
[Java] ArrayList와 LinkedList의 차이 (0) | 2024.02.18 |
HashMap 사용법 (개념, 특징, 메소드) (0) | 2024.02.16 |
Iterator란? Iterator 사용하는 이유 & 사용법 (0) | 2024.02.16 |
Stack / Queue (0) | 2024.01.22 |