[ C.S 지식 정리 : 자료 구조 ] 자료구조 : ArrayList.
∇ CS지식 정리 _ 자료구조 : ArrayList
목 차
1. ArrayList 란?
2. ArrayList 사용법.
Ⅰ ArrayList 란?
◇ ArrayList 는 Java의 Collection 프레임워크에서 가장 널리 사용되는 동적 배열 자료구조입니다.
◇ ArrayList 는 list 인터페이스를 상속받은 클래스로, 크기가 가변적으로 변하는 선형-리스트 입니다.
∇ 일반적인 배열과 같은 순차리스트이며, 인덱스로 내부의 객체를 관리한다는 점 등이 유사하지만,
한번 생성되면 크기가 변하지 않는 배열과는 달리,
∇ ArrayList는 객체들이 추가되어 저장용량(capacity)을 초과한다면,
자동으로 부족한 크기만큼 저장 용량(capacity) 이 늘어난다는 특징을 가지고 있습니다 .
∇주요 특징.
○ 동적 크기 조정
: 데이터 추가에 따라 자동으로 크기가 확장됩니다.
○ 순서 유지
: 요소의 저장 순서가 유지됩니다.
○ 중복 허용
: 동일한 요소를 여러 번 저장 가능합니다.
○ 인덱스 기반-빠른 접근 가능.
: 0부터 시작하는 인덱스로 요소에 빠르게 접근 가능합니다.
∇주요 메서드.
○ 'add()' : 요소 추가
○ 'get()' : 특정 인덱스의 요소 조회
○ 'remove()' : 요소 삭제
○ 'size()' : 요소 개수 확인
∇배열과의 차이점.
○ '배열'은 초기 설정으로 고정된 크기, ArrayList는 동적으로 크기 변경 가능.
○ ArrayList는 더 많은 유연한 메서드 제공.
○'데이터 읽기'에서는 배열보다 약간 느리지만, '데이터 추가/삭제'에서는 더 유용합니다.
Ⅱ. ArrayList 사용법.
1. ArrayList 선언 방법.
1-1 기본 선언.
ArrayList list = new ArrayList(); // 타입 미설정, Object로 선언
1-2 제네릭 타입 선언.
ArrayList<String> names = new ArrayList<>(); // String 타입만 저장 가능
ArrayList<Integer> numbers = new ArrayList<Integer>(); // Integer 타입만 저장 가능
1-3 초기 용량 지정.
ArrayList<Integer> numbers = new ArrayList<>(10); // 초기 용량 10으로 설정
1-4 다른 컬렉션으로 초기화.
ArrayList<Integer> list2 = new ArrayList<>(Arrays.asList(1, 2, 3)); // 초기 값 설정
2. ArrayList 값 추가 - add(index, value)
◎ ArrayList에 값을 추가하려면, ArrayList의 add(index, value) 메소드를 사용하면 됩니다.
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(3); //값 추가
list.add(null); //null값도 add가능
list.add(1,10); //index 1에 10 삽입
ArrayList<Student> members = new ArrayList<Student>();
Student student = new Student(name,age);
//name과 age 변수는 미리 정의되어 있다고 가정하며,
//이 값을 이용하여 Student 객체를 초기화합니다.
members.add(student);
members.add(new Student("kjw",25));
++ index 중간에 값을 추가하면, 해당 인덱스부터 마지막 인덱스까지 모두 1칸씩 뒤로 밀려납니다.
==>> 중간에 값을 추가할 경우가 있다면, ArrayList 보다는 LinkedList를 활용하는 것이 좋은 방법입니다. !
3. ArrayList 값 삭제- remove(), clear()
◎ ArrayList에 값을 제거하려면, ArrayList의 remove(index) 메소드를 사용하면 됩니다.
모든 값을 제거하고 싶다면, clear() 메소드를 사용하면 됩니다.
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
list.remove(1); //index 1 제거
list.clear(); //모든 값 제거
4. ArrayList 크기 구하기 - size()
◎ ArrayList의 크기를 구하려면 ArrayList의 size() 메소드를 사용하면 됩니다.
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.size());
//list 크기 : 3
5. ArrayList 값 출력 - get()
◎ ArrayList의 get(index) 메소드를 사용하면, ArrayList의 원하는 인덱스 값이 리턴됩니다.
리스트의 전체 값을 출력하고 싶다면, for문을 통해 출력 가능합니다.
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.get(0));
//0번째 index 출력
for(Integer i : list) {
System.out.println(i); //for문을 통한 전체출력
}
6. ArrayList 값 검색 - contains(value), indexOf(value)
◎ ArrayList에서 찾고자 하는 값을 검색하려면
ArrayList의 contains(value) 메소드를 사용하면 됩니다. 값이 존재하면 true, 없다면 false가 리턴됩니다.
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(1,2,3));
System.out.println(list.contains(1));
//list에 1이 있는지 검색 : true
System.out.println(list.indexOf(1));
//1이 있는 index반환 없으면 -1 (값이 있는 index를 찾을 경우)
'면접준비[프론트,백,데이터,CS] > CS 정리' 카테고리의 다른 글
[ C.S 지식 정리 : 네트워크 ] '네크워크' 면접용 공부_ 네트워크 기초 (1) | 2024.12.18 |
---|---|
[ C.S 지식 정리 : 자료 구조 ] 자료구조 : LinkedList. (0) | 2024.12.18 |
[ C.S 지식 정리 : 자료 구조 ] 자료구조 : 배열 (Array) (1) | 2024.12.13 |
[ C.S 지식 정리 : 자료 구조 ] 자료구조 & 알고리즘의 정의. (1) | 2024.12.13 |
[ C.S 지식 정리 : 자료 구조 ] 배열(Array) & 연결-리스트(LinkedList) (0) | 2024.11.16 |