Collection 1-3) ArrayList 추가메소드/제네릭
https://kwanghyung.tistory.com/entry/Collection-1-2-ArrayList
Collection 1-2) ArrayList?
https://kwanghyung.tistory.com/entry/Collection-1-1-Collection-%ED%81%B4%EB%9E%98%EC%8A%A4 Collection 1-1) Collection 클래스? 컬렉션(Collection) -자료구조가 내장되어 있는 클래스 -자바에서 제공하는 "..
kwanghyung.tistory.com
리스트의 부분만 추출하는 메소드
subList(int index1, int index2) : index1~index2까지 데이터 출력
List sub = list.subList(0,3);
System.out.println(sub);
이런식으로 표현가능합니다.
향상된 for문
순차적으로 배열 또는 컬렉션을 돌려주는 for문형태
for(값을 받을 타입 변수명 : 접근할 배열또는컬렉션)
for(Object o : list) {
System.out.println(((Music)o).getTitle());
}
제네릭(Generic) <E>
컬렉션 안에서 다룰 타입들을 미리 지정해주는 역할 -> 명시적으로 <Music>,<String>,<Integer>....
객체의 형변환을 할 필요가 없습니다.
-내가 사용하고 싶은 타입만 지정해주는 효과
만약 제네릭을 <Music>으로 정해주면 반환되는 Object가 Music이 됩니다 E-->Music
별도의 제네릭 제시없이 컬렉션 객체 생성시엔 기본타입이 Object다 E--->Object
제네릭 타입을 설정하지 않으면 다양한 타입이 담길 수 있습니다.
제네릭을 쓰는 이유
1.저장할 타입의 제한을 두기 위해
2.매번 형변환 하는 절차를 없애기 위해
[표현법]
ArrayList<E> list = new ArrayList<E>();
ArrayList<Integer> list =new ArrayList<Integer>();
list.add(5);
list.add(10);
list.add(new Integer(5));
//숫자 지정삭제,지정삭제를 하려면 object타입으로 지정해줘야한다.
Integer i = new Integer(6);
list.add(i);
System.out.println(list);
제네릭 타입으로 integer 설정 후 add메소드 후 결과
list.remove(i);
System.out.println(list);
제네릭은 생략 할 수 있습니다.
//왼쪽에만 제네릭타입 지정해줘도 사용가능 (선언부에서 지정했으니 초기화구문에는 생략가능하다.)
ArrayList<String> list3 = new ArrayList<>();
제네릭 설정 후 향상된 for문
//제네릭 Music타입으로 지정 후
for(Music m : list2) {
System.out.println(m.getTitle()); //반환 타입이 Music이기때문에 강제형변환 안해도 됨
}
Music 타입으로 m변수로 list2를 배열 시키겠다는 의미입니다.