![sshhhh](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
제네릭스WEB JAVA SPRING/문법2023. 8. 24. 14:43
Table of Contents
제네릭스 ArrayList<Type> pitches = new ArrayList<>();
사용하지 않은 예시
- ArrayList에 추가하는 객체는 Object 자료형(가장 기본)으로 인식
-따라서 ArrayList 객체인 pitches에 값을 넣을 때는 문제가 없지만
값을 가져올 때는 매번 Object 자료형에서 String 자료형으로 형 변환(casting) 을 해야 한다
ArrayList pitches = new ArrayList();
pitches.add("138"); // Object형으로 인식(객체형이 가장기본)
pitches.add("129");
//추가할때마다 일일이 Object 자료형을 String 자료형으로 형 변환해야함
String one = (String) pitches.get(0);
String two = (String) pitches.get(1);
이때 주의할 점은 pitches에는 String 외의 다른 객체도 넣을 수 있어서 형 변환 오류가 발생할 수 있다는 것이다.
사용예시
ArrayList<String> pitches = new ArrayList<>(); //<String> 으로 설정
pitches.add("138");
pitches.add("129");
String one = pitches.get(0); // 형 변환이 필요없다.
String two = pitches.get(1);
실습
제네릭 프로그래밍은 다양한 종류의 데이터를 처리할 수 있는 클래스와 메소드를 작성하는 기법이다.
대표적인 예가 ArrayList 클래스이다.
ArrayList<T>는 어떤 종류의 객체도 저장할 수 있는 배열인데,
여기서 T는 배열에 저장되는 타입을 나타내는 매개변수이다.
제네릭 클래스는 클래스를 정의할 때,
클래스 안에서 사용하는 자료형을 구체적으로 명시하지 않고 T와 같이 기호로 적는다.
나중에 객체를 생성할 때, T 자리에다 구체적인 자료형을 적는다. 다시 말해서 자료형을 클래스의 매개변수로 만든 것이다.
정수형 ArrayList는 ArrayList<Integer> = new ArrayList<Integer>();
public class MyArray {
public static <T> void Swap (T[] x, int i,int j){
T temp;
temp =x[i];
x[i]=x[j];
x[j]=temp;
}
}
public class MB_Exam17_Generi {
public static void main(String[] args) {
Integer[] y = {0,1,2,3,4};//이게 T=integer가 된다
Double[] z = {0.1,1.2,2.3,3.4,4.5};
int i;
System.out.println("Before Swapping array y");
for(i=0;i<=4;i++)
{
System.out.print(y[i]+",");
}
System.out.println();
System.out.println();
MyArray.Swap(y, 2, 4);
System.out.println("After Swapping array y");
for(i=0;i<=4;i++)
{
System.out.print(y[i]+",");
}
System.out.println();
System.out.println();
////////////////////////////////
System.out.println("After Swapping array z");
for(i=0;i<=4;i++)
{
System.out.print(z[i]+",");
}
System.out.println();
System.out.println();
MyArray.Swap(z, 2, 4);
//다른 자료형이지만 바뀐다.
System.out.println("After Swapping array z");
for(i=0;i<=4;i++)
{
System.out.print(z[i]+",");
}
System.out.println();
System.out.println();
}
}
'WEB JAVA SPRING > 문법' 카테고리의 다른 글
상속/생성자/인터페이스 (0) | 2023.08.25 |
---|---|
객체/클래스/인스턴스 (0) | 2023.08.25 |
Collection, Vector (0) | 2023.08.24 |
List, Map, Set (0) | 2023.08.24 |
접근제어자 (0) | 2023.08.24 |