ArrayList
- List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트
- 일반적인 배열과 같은 순차리스트이며, 인덱스로 내부의 객체를 관리한다.
- 객체들이 추가되어 저장 용량(capacity)을 초과한다면 자동으로 부족한 크기 만큼 저장 용량이 늘어난다. → LinkedList와의 차이(https://devlog-wjdrbs96.tistory.com/64)
- import java.util.ArrayList;
List선언
- List<String> list = new ArrayList<>();
- List<String> list = Arrays.asList(new String[]{"a","b","c"});
ArrayList 선언
- ArrayList array = new ArrayList(); //타입 미설정 object로 선언
- 값을 뽑아내기 위해 캐스팅(Casting)연산이 필요하기 때문에 추천하지 않음, 타입을 명시해 주는 것이 좋다.
- ArrayList<객체> array = new ArrayList<객체>();
- ArrayList<Integer> array = new ArrayList<Integer>();
- ArrayList<Stringer> array = new ArrayList<Stringer>();
------참고자료
- List<Object> list = new ArrayList<Object>(); → List라는 인터페이스로 선언(더 선호)
- ArrayList<Object> list = new ArrayList<Object>(); → ArrayList라는 구현체 클래스로 선언
- 다형성을 지원하기 위해서임 → 처음부터 변경에 유연한 구조로 미리 설계
- LinkedList로 변경이 필요한 경우 ArrayList로 선언했다면,
- 선언된 모든 부분을 LinkedList로 변경 + ArrayList에만 지원하는 메소드 사용 시 더이상 사용불가
- List로 선언한 경우 선언부만 변경하면 됨.
- 대부분 ArrayList에만 제공하는 메소드를 쓰지 않고, List에서 제공하는 메소드까지 사용하기 위함.
- 참고: https://bibi6666667.tistory.com/236
메소드
array.add() : 값 추가
array.remove(index) : 값 제거 → 제거 후 인덱스가 앞으로 1씩 당겨짐
array.clear() : 모든 값 제거
array.size() : 크기 구하기
array.get(index) : 특정 index값 출력
array.indexOF(d) : 해당 값이 있는 index출력
array.contains(d) : 해당 값이 잇는지 검색 true/false로 출력
array.isEmpty() : ArrayList가 비어있는지 확인
참고자료
https://coding-factory.tistory.com/551
https://devlogofchris.tistory.com/42
'Language > JAVA' 카테고리의 다른 글
[프로그래머스] 문자열 다루기 기본 (0) | 2022.01.17 |
---|---|
#char (0) | 2022.01.17 |
[프로그래머스] 문자열 내 p와 y의 개수 (0) | 2022.01.15 |
[프로그래머스] 내적 (0) | 2022.01.15 |
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2022.01.15 |