영호

[Java] List인터페이스 - LinkedList 본문

Language/JAVA

[Java] List인터페이스 - LinkedList

0h0 2022. 6. 16. 12:40

Java에서의 LinkedList

  • List인터페이스를 구현한 collection클래스 중 하나로, Java에서는 doubly LinkedList를 제공해줍니다.
  • ArrayList와 마찬가지로 List인터페이스를 구현했기 때문에 주요 메서드는 거의 비슷합니다.
  • 각 노드들은 참조를 통해 연결되기 때문에 ArrayList보다 데이터 추가/삭제 측면에서 효율적인 수행이 가능합니다.
  • 그러나, 특정 index의 원소에 접근하기 위해선 첫 노드부터 거쳐가야 하기 때문에 특정 원소 탐색에는 ArrayList보다 불리합니다.
  • ArrayList에 대한 글

 

LinkedList원소 추가

  • add(element), push(element),  addLast(element) : LinkedList뒤에 원소 추가  
  • addFirst(element) : LinkedList앞에 원소 추가
  • add(index, element) : index를 지정해 원소 추가
  • add(collection) : collection을 LinkedList뒤에 추가
  • add(index, collection) : collection을 index 지정해 추가
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(3);  // 3
linkedList.push(4); // 3, 4
linkedList.addLast(5); // 3, 4, 5

linkedList.addFirst(1); // 1, 3, 4, 5
linkedList.add(1,2); // 1, 2, 3, 4, 5
linkedList.addAll(Arrays.asList(6, 7)); // 1, 2, 3, 4, 5, 6, 7
linkedList.addAll(1,Arrays.asList(6, 7)); // 1, 6, 7, 2, 4, 3, 5, 6, 7

System.out.println("linkedList = " + linkedList);
// 1, 6, 7, 2, 4, 3, 5, 6, 7

 

LinkedList원소 삭제

  • remove(element) : LinkedList에서 element삭제
  • remove(index) : LinkedList의 index원소 삭제
  • remove(), removeFirst() : LinkedList의 첫 번째 원소 삭제
  • removeLast() : LinkedList의 마지막 원소 삭제
LinkedList<Integer> linkedList = new LinkedList<>(Arrays.asList(1,2,3,4,5,6,7));

linkedList.remove(Integer.valueOf(2)); // 1, 3, 4, 5, 6, 7
linkedList.remove(2); // 1, 3, 5, 6, 7
linkedList.remove(); // 3, 5, 6, 7
linkedList.removeFirst(); // 5, 6, 7
linkedList.removeLast(); // 5, 6

 

LinkedList 원소 개수

  • size()

LinkedList원소 탐색

  • get(index) : LinkedList의 index위치 원소 탐색
  • getFirst() : LinkedList의 첫 번째 원소 탐색
  • getLast() : LinkedList의 마지막 원소 탐색
  • contains(element) : 해당 element가 존재하는지 True/False
  • containsAll(collection) : collection원소가 전부 존재하는지 True/False
LinkedList<Integer> linkedList = new LinkedList<>(Arrays.asList(1,2,3,4,5,6,7));

for(int i = 0; i < linkedList.size(); i++){
    System.out.print(linkedList.get(i) + " "); // 1 2 3 4 5 6 7
}

System.out.println("linkedList.getFirst() = " + linkedList.getFirst()); // 1
System.out.println("linkedList.getLast() = " + linkedList.getLast()); // 7

linkedList.contains(Integer.valueOf(3)); // true
linkedList.contains(Integer.valueOf(10)); // false

linkedList.containsAll(Arrays.asList(1, 2)); // true
linkedList.containsAll(Arrays.asList(1, 2, 8)); // 8이 없기 때문에 false

 

LinkedList 원소 변경

  • set(index, element) : index원소를 element로 변경
LinkedList<Integer> linkedList = new LinkedList<>(Arrays.asList(1,2,3,4,5,6,7));

linkedList.set(0, 5); // 5, 2, 3, 4, 5, 6, 7

'Language > JAVA' 카테고리의 다른 글

[JAVA] instance method vs static method  (0) 2022.10.04
[Java] Map인터페이스 - HashMap  (0) 2022.06.25
[Java] List인터페이스 - ArrayList  (0) 2022.06.14
[Java] String Constant Pool  (0) 2022.06.08
[Java] ==, equals() 차이  (0) 2022.06.08
Comments