list (리스트)
노드로 이루어져 있으며 배열의 데이터를 유동적으로 대처하기가 어려운 단점을 대처 할 수 있다.
배열의 단점
- 선형 검색으로 보통의 시나리오에서 데이터를 검색하는데 시간이 오래 걸린다.
- 선언시 공간을 미리 할당하기 때문에 자료를 추가하는데 복잡함이 생기며 메모리의 공간이 낭비될 수 있다.
- 앞의 인덱스 데이터를 삭제할 경우 복잡함이 발생한다.
1. 크기문제 : 크기를 유연하게 대처할 수 있다.
2. 데이터의 추가 삭제 : 비지니스 로직에 따른 데이터의 추가 삭제가 유연하다.
사용환경
배열 - 데이터가 고정적일때
리스트 - 데이터가 유동적일때
- 단일 연결 리스트
단방향 구조
- 이중연결 리스트
쌍방향 구조
Access가 단일 연결리스트보다 빠르다.
* 리그레션 테스트 (Regresion test) : 이미 테스트된 프로그램의 테스팅을 반복하는 것으로, 결함 수정 이후 변경의 결과로 새롭게 만들어 지거나, 이전 결함으로 인해 발견되지 않았던 또 다른 결함을 발견하는 테스트.
* 단일 연결 리스트 : 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조.
* 멀티플랙서(mux) : 여러 아날로그 또는 디지털 입력 신호 중 하나를 선택하여 선택된 입력을 하나의 라인에 전달하는 장치이다.
list container (리스트 컨테이너)
시퀀스 컨테이너의 일종이며 순서를 유지하는 구조이며 노드를 기반으로 하고있다.
설계
1. Node data 생성 (독립적 데이터)
※독립적 데이터 부터 생성해야한다.
1-2. 데이터 생성
1-3. 생성자 생성
1-4. 오버로딩 생성자 생성
2. 모듈 구현 테스트 (단위 테스트)
(기사 시험 : 단위 테스트 -> 통합테스트 -> 시스템테스트 -> 인수테스트)
2-1. 메인 메소드에서 임포트 선언
2-2. 생성자, 메인 생성자 값 대입 및 디버깅
3. Node 생성
※ Node 는 Node data에 종속되어있다.
3-1. 노드 데이터 참조값 생성
3-2. 넥스트 노드 참조값 생성
3-3. 기본 생성자 생성
3-4. 오버로딩 생성자 생성
3-5. 인텔리전트 생성자 생성
3-6. 데이터, 넥스트 게터&세터 생성
3-7. 메인 클래스 노드 선언
3-8 테스트
4. ListContainer 클래스 생성
4-1. 노드 헤드, 노드 카운트,
4-2. 생성자 생성
4-3. 인서트 노드 생성자 생성
4-4. 인서트 노트 타입 2 생성자 생성
4-5. 제일 뒤 에 새로운 노드를 넣는 생성자 생성
· 노드가 있는 경우
마지막 노드를 찾는다.
마지막 노드 .setNext(새로운 노드의 참조값)
· 헤드가 null인 경우 새로운 노드의 참조값을 헤드에 넣는다.
head == null
head = 새로운 노드의 참조값
· 각 노드의 데이터를 출력하는 생성자 생성 및 디버깅
'JAVA' 카테고리의 다른 글
[Java] Comment(주석), 클래스(class), 생성자, 정보은닉 (0) | 2022.05.31 |
---|---|
[Java] 리터럴(Literal), 연산자 (0) | 2022.05.30 |
[Java] 패키지, 버블소트 (0) | 2022.05.23 |
[Java] 배열 랜덤수 검사하기. (0) | 2022.05.23 |
[Java] return, new, 2차원 배열 (0) | 2022.05.23 |