2021. 3. 18. 16:33ㆍJAVA 공부
이번에는 ArrayList를 이용한 메서드에서 매개변수, 반환유형은 어떻게 되는지 알아 봅시다
먼저, ArrayList를 매개변수로 받고 싶다면 이렇게 해주면 됩니다
List<Type> 이름 / Type에는 원하는 클래스 또는 데이터 타입을 넣어주면 됩니다
메서드의 반환유형으로 쓰고 싶다면 ?
매개변수로 받았던 것처럼 써주면 됩니다.
그리고 이제 ...
<?> -> 어떠한 것이든 다 받을 수 있음
<? extends type> -> type 을 포함한 자식클래스를 받을 수 있음
<? super type> -> type 의 형태를 가질 수 있는 건 받을 수 있음
에 대해 알아 봅시다
예제를 통해서 확인해 봅시다
<?> -> 어떠한 것이든 다 받을 수 있음
<? extends type> -> type 을 포함한 자식클래스를 받을 수 있음
<? super type> -> type 의 형태를 가질 수 있는 건 받을 수 있음
List의 기능
- addAll(Collection <? extends type>) -> Collention 형태의 type 복사
- asList(type[]) -> 배열을 리스트 형식으로 반환
LinkedList
LinkedList 는 Queue 와 List 의 성질 2개를 다 가지고 있습니다.
LinkedList 는 값과, 다음값을 가리키는 주소 를 가지고 있습니다.
LinkedList 는 ArrayList 보다 삭제할 때 빠릅니다.
※ArrayList or 배열 에 1번째 값을 삭제하면, 뒤에 있는 값들을 땡겨서 가져오지만 LinkedList 는 다음 값을 가르키는 주소만 변경하면 되기 때문
List 에 담아준다면 List의 기능만을 ....
Queue 에 담아준다면 Queue의 기능만을 ...
LinkedList 에 담아준다면 둘 모두의 기능을 가지고 있습니다.
- add(type e) -> e 를 추가합니다
- toString() -> list의 값을 String 으로 반환합니다
- get(int index) -> index 번째 값을 가져옵니다
- addFirst(type e) -> e를 맨 앞에 추가 합니다
- addLast(type e) -> e를 맨 뒤에 추가 합니다
- push(type e) -> 메모리 구조상 맨 처음에 e를 추가합니다
- pop() -> 메모리 구조상 맨 처음에 있는 걸 꺼내오면서 삭제합니다
- peek() -> 메모리 구조상 맨 처음에 있는 걸 꺼내옵니다
Queue 가 FIFO (First in First out) 의 특성을 가지고 있기 때문에, 먼저 들어간 건 먼저 나와야 합니다
LinkedList 는 이해하려면 자료구조 및 메모리 에 대해서 알아야 한다고 합니다.
정확히 이해 하면 좋겠지만, 일단... LinkedList 는 다음 값의 주소를 가지고 있다는 것과, ArrayList 보다 삭제할 때 성능이 더 좋다는 것 정도만 알면 된다고 합니다
고생하셨습니다
'JAVA 공부' 카테고리의 다른 글
Day25 - 폴더 생성, 폴더 삭제, FileWriter, FileReader, Buffered (0) | 2021.03.22 |
---|---|
Day24 - Set , Map (0) | 2021.03.20 |
Day22 - Collection Framework , ArrayList (0) | 2021.03.17 |
Day22 - 제네릭 ( Generic ) (0) | 2021.03.17 |
Day22 - Date, Calendar, Random, StringTokenizer (0) | 2021.03.17 |