개발 일기

배열과 ArrayList의 차이 [더 공부 후 정리할 것] 본문

Java&Spring/Java

배열과 ArrayList의 차이 [더 공부 후 정리할 것]

flow123 2022. 1. 15. 13:49

배열과 리스트가 헷갈리곤 했다. 배열(Array)와 리스트(List)는 자바의 자료형에 속한다. 

 

가장 대표적인 차이점 

 

배열:  배열의 갯수가 정해져 있을 때

리스트: 배열의 갯수가 정해져 있지 않을 때 (동적 고정 상태)   ex) ArrrayList, Vector, LinkedList 등이 있다. 

 

 

배열의 용도: 배열을 통해서 자료형이 같은 자료를 순차적으로 관리할 수 있다. 학생이 100명 있고, 100명의 학번을 관리해야 한다고 가정해보자. 학번의 자료형이 정수라면, 학생이 100명일 때, int studentID1... studentID100 이렇게 변수 100개를 선언해야 할 것이다. 여러 변수를 일이이 쓰는 것이 귀찮기 때문에, 배열 자료형을 사용한다. 

 

배열은 아래와 같이 초기화한다. 

int[] studentIDs = new int[10];

 

리스트와 배열은 비슷하지만, 리스트는 배열보다 편리한 기능을 가지고 있다. 

ArrayList는 리스트 자료형 중 가장 간단한 형태의 자료형이다. 

ArrayList 에서 쓰이는 add, get, size, remove 등 다양한 메서드의 활용법을 보자. 

import java.util.ArrayList; 
public class Sample { 
	public static void main(String[] args) {
    	ArrayList fruits = new ArrayList(); 
        //ArrayList에 더하기
        fruits.add("사과"); 
        fruits.add("배"); 
        //ArrayList 특정 위치에 더할 때는 parameter를 함께. 
        fruits.add(0, "사과");
        
        //리스트에서 n번째를 출력하고 싶다면 get메서드
        System.out.println(pitches.get(0));
        //size 메소드는 ArrayList의 갯수를 리턴한다.
        System.out.println(pitches.size());
        //contains메서드는 리스트 안에 해당 항목이 있는지를 판별해서 boolean으로 리턴한다. 
        System.out.println(pitches.contains("사과"));
        //remove 메서드 (1) 객체 (2) 인덱스로 삭제 
        System.out.println(pitches.remove("사과"));
        System.out.println(pitches.remove("0"));

 

제네릭스란?

제네릭스는 타입체크를 함으로써 (1) 형변화할 필요가 없어진다 (2) 잘못된 형변환으로 인한 오류를 방지한다. 

제네릭스에 대한 자세한 내용은 다음 포스팅을 참고하자. 

 

https://writerroom.tistory.com/184

 

 

출처

DoIt 자바 프로그래밍 입문 [ch7. 배열과 ArrayList]  

https://wikidocs.net/207

Comments