Java Collection 의 Array

Dev_Gony·2023년 10월 24일
0

Java

목록 보기
1/3

이게 뭔데.....

구글링을 해본 결과

컬렉션 프레임워크(collection framework)란?

자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다고 함!

즉! 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것!

이렇게 구현해 놓은 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다고 한다!


여기서 의문을 가져야 할 부분이 있다고 함!

// 배열
int[] scores = new int[30];

//List
ArrayList<Integer> scores = new Arraylist<>();

데이터를 담고 처리하는 방법에는 배열(Array)이 있는데 왜 Collection을 사용하냐!!

배열(Array)와 차이점은 정적메모리할당이 아닌 동적메모리할당을 하게 됨!
배열은 new int[4]를 하면 4개 공간밖에 못쓰고 미리 선언을 통해 4개의 공간을 만들어야 하지만(정적 메모리), collection은 공간이 계속 필요한 만큼 추가할 수 있다(동적 메모리).

결론적 으로는

배열은 정적메모리고 정해둔 공간밖에 못씀! 크기가 정해져있다!
컬렉션은 동적메모리고 필요할 때 추가할 수 있다!

뭐... 가변성이 있다라고 해석해도 될지..!?


Array와 AraayList의 차이를 좀 찾아봤음

예제코드들을 봐보겠음

import java.util.ArrayList
import java.util.List;

public class Main {
	public static void main(String[] args) {
		String[] array = new String[10];
        List<String> list = new ArrayList<>();
        
        System.out.println("저장 전 length : "+array.length);
        System.out.println("저장 전 size : "+list.size());
        
        array[0] = "홍길동";
        array[1] = "이순신";
        array[2] = "강감찬";
        
        list.add("홍길동");
        list.add("이순신");
        list.add("강감찬");
        
        System.out.println("저장 후 length : "+array.length);
        System.out.println("저장 후 size : "+list.size());
    }
}

결과

  1. Array 저장 전 length : 10

  2. List 저장 전 size : 0

  3. Array 저장 후 length : 10

  4. List 저장 후 size : 3

  5. 배열의 length를 10으로 선언했기 때문에 10출력

  6. ArrayList에 값이 저장되지 않았기 때문에 size 0출력

  7. 값이 3개만 저장되어도 length는 10으로 고정되기 때문에 10 출력

  8. 값이 3개가 저장되었기 때문에 size 3 출력


아 이거 Array가 그냥 배열이고 List가 ArrayList 인건가 괜히 헷갈리네
결과를 보니까 결국
1, 3 번의 Array는 배열의 크기를 바로 선언하는거니까 고정적으로 값이 변하지 않는거고

2, 4 번의 ArrayList는 배열의 크기가 유동적으로 변할 수 있어서 처음에 따로 크기 선언없이 추가된 부분이 생성되어 size가 3으로 나오는 듯!?

오케이 이해해부러쓰!


참고블로그
https://www.icia.co.kr/community/board/view/2/1/117
https://choicode.tistory.com/25

profile
잔디심는 코린이

0개의 댓글

관련 채용 정보