다연이네

[days22] 컬렉션 클래스<List> - LinkedList 본문

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;// 자기 자신의 주소 값을 참조함 ( 다음 요소(노드)의 주소값을 담을 참조변수 )
}
반응형
Comments