@TestMethodOrder
테스트를 실행하는 순서를 보장해야 할 때 적용하는 어노테이션
@TestMethodOrder(MethodOrderer.MethodName.class)
public class MyArrayListTest {
@Test
void t002() {
...
}
@Test
void t001() {
...
}
}
위와 같이 실행하면 t001(), t002() 순으로 테스트가 실행된다.
ArrayList 직접 구현 시 참고 사항
- List의 add()는 true를 리턴한다.
- 제네릭 배열은 생성할 수 없다.
- Object 배열로 만들고 return할 때 T로 형변환하는 식으로 진행
- 배열은 공변하며 런타임에 실체화되지만, 제네릭 타입은 불공변하며 런타임에 소거
- 이로 인해 배열은 타입 안전성을 보장해줄 수 없어 제네릭 배열을 직접 생성할 수 없다.
- https://pompitzz.github.io/blog/Java/whyCantCreateGenericsArray.html#제네릭과-배열의-차이점
HashMap 직접 구현 시 ArrayList VS LinkedList
- ArrayList ⇒ 인덱스 기반의 빠른 데이터 접근이 필요할 때
- 인덱스 기반의 데이터 접근이 빠르다.
- 요소들이 메모리 상에서 연속적으로 배치되어 있어 메모리 사용이 비교적 효율적이다.
- 크기 변경 시 데이터를 복사해야 하므로 크기 조절이 느리다.
- LinkedList ⇒ 요소의 추가와 삭제가 빈번하게 발생할 때
- 크기 변경 시 노드의 참조만 변경하면 되므로 크기 조절이 빠르다.
- 노드를 순차적으로 탐색해야 하므로 인덱스 기반의 데이터 접근이 느리다.
- 각 노드마다 다음 노드와 이전 노드에 대한 참조를 저장해야 하므로 메모리 사용이 비교적 비효율적이다.
'프로젝트 & TIL > 일별 공부 기록 (백엔드 스쿨)' 카테고리의 다른 글
44일차 - 스프링부트 앱 도커라이즈 (0) | 2023.04.24 |
---|---|
43일차 - 도커 컴포즈 (0) | 2023.04.21 |
41일차 - 재귀 함수 (0) | 2023.04.19 |
40일차 - 일급 컬렉션, 리플렉션 (0) | 2023.04.18 |
39일차 - 자바 문법 심화 개요, hashcode(), List.of() (0) | 2023.04.17 |