자료구조 공부를 하면서 LinkedList를 구현해 보았습니다.
https://kingofsiliconvalley.tistory.com/33
☕️ [JAVA] 연결 리스트 구현
자바로 연결리스트 자료구조를 구현해보겠습니다. 생성자 public class DoubleLinkedList { public Node head = null; public class Node { T data; Node next = null; public Node(T data){ this.data = data; }..
kingofsiliconvalley.tistory.com
직접 구현해 봄으로써 화이트보드 코딩으로 연결리스트를 구현해보라고 하면 자신있게 구현 할 수 있지만
IDE를 사용 못하는 환경에서 코딩테스트를 볼 경우 연결리스트를 직접 구현해서 사용하는 짓은 살짝 미친?짓입니다.
그래서 이미 자바에서 구현해 놓은 연결리스트 자료구조에 대해서 알아보겠습니다.
LinkedList 선언 및 사용법
LinkedList list = new LinkedList();//타입 미설정 Object로 선언된다.
LinkedList<Student> members = new LinkedList<Student>();//타입설정 Student객체만 사용가능
LinkedList<Integer> num = new LinkedList<Integer>();//타입설정 int타입만 사용가능
LinkedList<Integer> num2 = new LinkedList<>();//new에서 타입 파라미터 생략가능
LinkedList<Integer> list2 = new LinkedList<Integer>(Arrays.asList(1,2));//생성시 값추가
LinkedList 값 추가
LinkedList<Integer> list = new LinkedList<Integer>();
list.addFirst(1);//가장 앞에 데이터 추가
list.addLast(2);//가장 뒤에 데이터 추가
list.add(3);//데이터 추가
list.add(1, 10);//index 1에 데이터 10 추가
add메소드로 값을 추가 할 수 있습니다.
인덱스를 지정해서도 집어넣을 수 있습니다.
addFirst, addLast는 각각 맨 처음과 맨끝에 데이터를 집어 넣을 수 있는 메소드입니다.
Linkedlist 값 삭제
LinkedList<Integer> list = new LinkedList<Integer>(Arrays.asList(1,2,3,4,5));
list.removeFirst(); //가장 앞의 데이터 제거
list.removeLast(); //가장 뒤의 데이터 제거
list.remove(); //생략시 0번째 index제거
list.remove(1); //index 1 제거
list.clear(); //모든 값 제거
.removefirst(), removeLast() 각 메소드는 맨 처음 값과 맨 마지막 값을 삭제 할 수 있습니다.
.remove() 메소드에 인자를 안넣으면 0번째 값, 인덱스를 넣으면 인덱스의 값을 삭제 합니다.
.clear()메소드로 모든 값을 비울 수 있습니다.
LinkdedList 크기 구하기
LinkedList<Integer> list = new LinkedList<Integer>();
list.add(1); // [1]
list.add(2); // [1,2]
list.add(3); // [1,2,3]
list.size(); // 3
.size() 메소드로 크기를 구할 수 있습니다.
ArrayList와 메소드가 상당히 비슷하단 걸 알 수 있습니다.
LinkedList 값 조회하기
LinkedList<Integer> list = new LinkedList<Integer>();
list.add(1); // [1]
list.add(2); // [1,2]
list.add(3); // [1,2,3]
list.get(0); // 1
get메소드의 인자에 인덱스를 넣어서 조회할 수 있습니다.
LinkedList값 검색
LinkedList<Integer> list = new LinkedList<Integer>();
list.add(1); // [1]
list.add(2); // [1,2]
list.add(3); // [1,2,3]
list.indexOf(2) // 1
list.contains(2) // true
list.contains(4) // false
.indexOf메소드에 인자에 값을 넣으면 값에 해당하는 인덱스를 반환 합니다.
.contains메소드로 인자에 값을 넣으면 값의 유무를 boolean타입으로 반환합니다.
아래 블로그를 보고 참고해서 약간의 수정과 요약을 해서 정리했습니다.
https://coding-factory.tistory.com/552?category=758267
[Java] 자바 LinkedList 사용법 & 예제 총정리
LinkedList란? 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조입니다. 데이터를 담고 있는 노드들이 연결되어 있고, 노드의 포인터가 이전 노
coding-factory.tistory.com
'자바 자료구조' 카테고리의 다른 글
☕️ [JAVA] 우선순위 큐 (Priority Queue) (0) | 2021.10.12 |
---|---|
☕️ [JAVA] HashMap (0) | 2021.10.12 |
☕️ [JAVA] ArrayList (0) | 2021.10.12 |
☕️ [JAVA] 이진 탐색트리 구현 (0) | 2021.10.08 |
☕️ [JAVA] 해시리니어 구현 (0) | 2021.10.07 |