[Java] LinkedList

2021. 5. 4. 16:53

1. LinkedList ?

  • 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조
  • index가 없어 데이터의 추가, 삭제에 용이하나 특정 요소 접근을 위해 탐색 필요
  • 탐색/정렬 중심-> 배열, 데이터 추가/삭제 중심-> 연결 리스트

출처 https://coding-factory.tistory.com/552?category=758267

 

 

2. 사용법

LinkedList 생성자

LinkedList<Integer> list1 = new LinkedList<>();
LinkedList<String> list2 = new LinkedList<>();
LinkedList<Student> list3 = new LinkedList<>();	// 사용자가 정의한 Student 객체

// 한번에 여러 개의 값으로 초기화
LinkedList<Integer> list4 = new LinkedList<>(Arrays.asList(1,2,3,4,5));

 

LinkedList 멤버함수

LinkedList<Integer> list = new LinkedList<Integer>();
list.addFirst(1);	// 가장 앞에 데이터 추가
list.addLast(2);	// 가장 뒤에 데이터 추가
list.add(4);	// 가장 뒤에 데이터 추가
list.add(2, 3);	// index 2 뒤에 데이터 3 추가

list.removeFirst();	// 가장 앞의 데이터 제거
list.removeLast();	// 가장 뒤의 데이터 제거
list.remove(2);	// index 2 위치의 데이터 제거
list.remove();	// 생략 시 index 0 위치의 데이터 제거
list.clear();	// 모든 값 제거

list.size();	
list.get(1);	// index 1 위치의 데이터 반환
list.contains(3);	// list에 3이 있을 경우 true
list.indexOf(2);	// 2가 있는 index 반환, 없을 경우 -1 반환

LinkedList<Student> members = new LinkedList<>();
Student student = new Student(name, age);
members.add(student);
members.add(new Student(name, age));

 

LinkedList 값 출력

// for문 사용
for(Integer i : list) { 
    System.out.println(i);
}

// Iterator 사용
Iterator<Integer> iter = list.iterator(); 
while(iter.hasNext()) {
    System.out.println(iter.next());
}

'Java' 카테고리의 다른 글

[Java] 힙 (Heap)  (0) 2021.07.19
[Java] Priority Queue  (0) 2021.07.09
[Java] 반복문 제어 - break, continue  (0) 2021.05.04
[Java] Queue  (0) 2021.05.04
[Java] List <-> Array  (0) 2021.04.26

+ Recent posts