본문 바로가기
java

[java] 제네릭스, ArrayList

by 개발LOG 2024. 7. 22.

제네릭스를 이용하면 형 변환과 관련된 불필요한 코딩을 줄일 수 있고, 잘못된 형 변환 때문에 발생하는 런타임 오류를 방지할 수 있다.

 

제네릭스를 사용하지 않은 예:

ArrayList pitches = new ArrayList();
pitches.add("138");
pitches.add("129");

String one = (String) pitches.get(0);
String two = (String) pitches.get(1);

제네릭스를 사용하지 않으면 ArrayList에 추가하는 객체는 Object 자료형으로 인식된다. Object 자료형은 모든 객체가 상속하고 있는 가장 기본적인 자료형이다. 따라서 ArrayList 객체인 pitches에 값을 넣을 때는 문제가 없지만 값을 가져올 때는 매번 Object 자료형에서 String 자료형으로 형 변환(casting) 을 해야 한다.

 

 

제네릭스 사용 예:

ArrayList<String> pitches = new ArrayList<>();
pitches.add("138");
pitches.add("129");

String one = pitches.get(0);  // 형 변환이 필요없다.
String two = pitches.get(1);  // 형 변환이 필요없다.

 

 

배열을 리스트로 변환 예:

import java.util.ArrayList;
import java.util.Arrays;

public class Sample {
    public static void main(String[] args) {
        String[] data = {"138", "129", "142"};  // 이미 투구수 데이터 배열이 있다.
        ArrayList<String> pitches = new ArrayList<>(Arrays.asList(data));
        System.out.println(pitches);  // [138, 129, 142] 출력
    }
}

 

참고로 리스트 자료형에는 ArrayList, Vector, LinkedList 등이 있다.

'java' 카테고리의 다른 글

[java] 접근제어자  (1) 2024.07.23
[java] HashMap  (0) 2024.07.22
[java] StringBuffer, StringBuilder, String 차이  (0) 2024.07.22
[java] 배열  (0) 2024.06.04
[java] 메서드 오버로딩, 매서드 오버라이딩, 가변인자  (0) 2024.06.04