Java
[days22] 컬렉션 클래스<List> - LinkedList
다연
2020. 10. 21. 09:29
반응형
LinkedList 컬렉션 클래스
- 연결구조 노드-노드-노드 구조
- 불연속적으로 존재하는 데이터를 서로 연결(Link)한 형태
- Queue 구조를 따른다(FIFO), Deque(Queue의 자식) 구조를 상속받고 있음
- 삭제, 추가 간단+ 처리 속도 빠름 ***
- ***중간 데이터***를 추가/삭제할 경우 성능이 빠르다
package review;
import java.util.Iterator;
import java.util.LinkedList;
public class Ex03 {
public static void main(String[] args) {
Node node1 = new Node(10);
Node node2 = new Node(20);
Node node3 = new Node(30);
Node node4 = new Node(40);
Node node5 = new Node(50);
node1.next = node2; //// 노드2의 주소값을 노드1에 참조시킨 것
node2.next = node3;
node3.next = node4;
node4.next = node5;
node1.next = node3; //node2 제거
Node node6 = new Node(60); //node6 추가
node5.next = node6;
//모든 노드 값 출력
Node node = node1;
while (node != null) {
System.out.println(node.value);
node = node.next;
}
//단점: 중간에 주소값 잘못 입력하면 뒤에 기차들 다 날아감
//해결 > 양방향 링크드 리스트
Node next = null; // 다음 요소(노드) 주소값
Node previous = null; // 앞(이전) 요소
LinkedList<String> list = new LinkedList<>();
list.add("신짱구");
list.add("신짱아");
list.addFirst("김철수");//맨 앞에 삽입
list.offer("맹구"); //offer == add
//list 전체 출력
Iterator<String> ir = list.iterator();
while (ir.hasNext()) {
String name = ir.next();
System.out.println(name);
}
System.out.println(list.get(0));
System.out.println(list.getFirst()); // == list.get(0)
System.out.println(list.peek()); // == list.get(0)
System.out.println(list.poll()); // == list.get(0) + 제거
//list.remove(0); 첫 값 제거
//list.removeFirst(); "
//list.poll(); "
}
}
class Node{
int value;
public Node(int value) {
super();
this.value = value;
}
Node next = null;// 자기 자신의 주소 값을 참조함 ( 다음 요소(노드)의 주소값을 담을 참조변수 )
}
반응형