면접준비[프론트,백,데이터,CS]/CS 정리

[ C.S 지식 정리 : 자료 구조 ] 자료구조 : ArrayList

안다미로 : Web3 & D.S 2024. 12. 17. 16:00

 

 

 

 

 

[ 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를 찾을 경우)