온라인 강의/김영한의 실전 자바 - 중급 2편 3

[섹션2] 컬렉션 프레임워크 - ArrayList

배열과 인덱스배열의 특징배열에서 자료를 찾을 때 인덱스(index)를 사용하면 매우 빠르게 자료를 찾을 수 있다.인덱스를 통한 입력, 변경, 조회의 경우 한 번의 계산으로 자료 위치를 찾을 수 있다. 간단 정리 int는 4byte를 차지한다.배열의 시작 참조 + (자료의 크기 * 인덱스 위치)arr[1]: x100 + (4byte * 0)arr[2]: x100 + (4byte * 1) 배열의 검색배열에 들어 있는 데이터를 검색할 때는 하나씩 비교를 해야한다.배열 안에 있는 데이터를 하나씩 확인해야 하기 때문에 배열의 크기가 클 수록 시간이 오래걸린다.배열의 순차 검색은 배열에 들어있는 데이터의 크기 만큼 연산이 필요하다. 빅오(O) 표기법알고리즘의 정확한 실행 시간이 아니라, 데이터 양의 증가에 따른 성..

[섹션1] 제네릭 2편

1. 타입 매개변수 제한 클래스에 명확한 타입을 정해 놓고 작성한다.코드 재사용 X코드 안정성 O다형성 시도코드 재사용성 O: 다형성 처리를 통해 클래스를 하나로 처리할 수 있다.코드 안전성 X: 원하는 타입을 반환하기 위해서는 다운 캐스팅을 해야한다.제네릭 도입과 실패제네릭 타입을 선언하면 자바 컴파일러 입장에서는 T에 어떤 타입이 들어오는지 알 수 없다.=> T는 어떤 타입이든 받을 수 있는 모든 객체의 최종 부모인 Object 타입으로 가정한다.제네릭에서 타입 매개변수를 사용하면 어떤 타입이든 들어올 수 있다.=> 매개변수 타입을 제한 해야한다.타입 매개변수 제한public class AnimalHospitalT extends Animal>코드 재사용성 O코드 안전성 O: 타입 매개변수 상한(ext..

[섹션1] 제네릭 1편

Q. 클래스에서 Integer, boolean, String 등 여러 타입을 한 번에 처리를 어떻게 할까?  1. 여러 타입 처리 방법1) 각 타입을 처리하는 클래스 만들기장점컴파일로 정확하게 타입을 알려준다.(타입 안전성O)단점각 타입마다 클래스를 만들어야 한다.(코드 재사용X)// Integer 담당 클래스IntegerBox integerBox = new IntegerBox();integerBox.set(10);Integer integer = integerBox.get();System.out.println("integer = " + integer);// String 담당 클래스StringBox stringBox = new StringBox();stringBox.set("hello");String st..