[Java] Java의 자료구조와 Array vs ArrayList

eunhye_·2022년 8월 4일
0

Java

목록 보기
7/10
post-thumbnail

Java에 자료구조인 List, Set, Map에 대해 알아보고 Array와 ArrayList를 구분지어 알아보자.

1.List

  • java.util.list
  • 중복 데이터 허용
  • 고유한 index로 데이터 관리
	public void intArray() {
		int [] i = new int[2]; 
		i[0] = 10;
		i[1] = 20;
		System.out.println(i[0]);
		System.out.println(i.length); //list의 길이 = 데이터의 개수
	}
output:
10
2 

2. Set

  • 중복 데이터 없음, 데이터마다 고유한 값
  • index 없음, 순서가 보장되지 않는다.
  • 고유한 데이터를 다루는데 사용한다. (ex: 학번, 사번..)
	public void Set01() {
		HashSet<Integer> set = new HashSet<Integer>()		
		set.add(1);
		set.add(1);//중복되는 데이터 중 최종 1이 남는 1
		set.add(2);
		set.add(3);
		set.add(4);
        System.out.println(set.size());
		System.out.println(set.contains(3));	
		System.out.println(set.toString());
        
output:
4
true
[1, 2, 3, 4] // 중복되는 값이 들어오면 나중 값만 남기고 모두 삭제한다.

3. Map

  • key와 value 구조로 되어있다.
  • key를 통해 데이터를 구분하고 value를 조회하는 것에 활용한다.
	public void hashMap01() {
		HashMap<Integer, String> map = new HashMap<>();
		map.put(1, "Harry Potter");
		map.put(2, "Ron Weasley");
		// 출력
		System.out.println(map.get(1)); //map.get(new Integer(1))와 동일
		}
 output:
 Harry Potter

Array와 ArrayList

공통점

  • 중복되는 데이터를 허용한다.
  • index를 통해 데이터를 관리한다.
  • 같은 메소드 add와 get 메소드를 사용한다.

차이점

  • 길이 조절
    Array는 길이를 한 번 지정하여 생성하면 바꿀변경 할 수 없다.
    ArrayList의 길이는 가변적이다.

  • Primitives
    Array : primitive type, Object
    ArrayList : Object (Only!) (primitive data types(int, float, double etc)을 가질 수 없다.)

  • 배열 조회
    Array : for 문, for each 문을 통해 데이터를 조회한다.
    ArrayList : iterator를 사용하여 데이터를 순회 할 수 있다.

  • 차원
    Array : 다차원이 가능하다.
    ArrayList : 1차원만 가능하다.

  • 메모리
    Array : 초기화 시 메모리에 할당된다. ArrayList 보다 빠르다.
    ArrayList : 데이터 추가 삭제시 메모리를 재할당한다. Array보다 느리다.
    때문에 보통 알고리즘같이 속도가 중요한 작업에는 Array를 사용한다.

0개의 댓글