본문 바로가기
프로그램 개발해서 돈벌기/flutter

[flutter] class에서 LinkedListEntry를 상속 받은 경우에 대한 의미와 예제 코드

by ubmuhan 2023. 5. 3.
반응형

Flutter에서 extends LinkedListEntry는, LinkedList와 함께 사용되어 Doubly linked list(이중 연결 리스트)의 항목(entry)을 나타내는 클래스를 생성하는 방법 중 하나입니다.

 

extends LinkedListEntry를 사용하여 클래스를 정의하면, 해당 클래스의 인스턴스는 이중 연결 리스트에서 노드(node)로 사용할 수 있습니다. 클래스는 element 프로퍼티를 가지며, 이것은 리스트에서 노드에 해당하는 데이터를 나타냅니다. 또한 next와 previous 프로퍼티를 가지며, 이것은 각각 다음 노드와 이전 노드를 가리키는 포인터 역할을 합니다.

 

다음은 extends LinkedListEntry를 사용하여 간단한 이중 연결 리스트 노드 클래스를 정의하는 예제입니다.

 

class MyListNode extends LinkedListEntry<MyListNode> {
  int value;

  MyListNode(this.value);
}

 

위의 코드에서 MyListNode 클래스는 extends LinkedListEntry<MyListNode>를 통해 LinkedList와 함께 사용될 수 있습니다. 클래스는 value 프로퍼티를 가지며, 이것은 이중 연결 리스트에서 노드에 해당하는 데이터를 나타냅니다.

 

Flutter에서 extends LinkedListEntry를 사용하는 것은 이중 연결 리스트를 구현하는 데 매우 편리한 방법 중 하나입니다. 리스트의 각 항목은 클래스의 인스턴스로 나타내며, 이를 통해 리스트를 쉽게 조작할 수 있습니다.

 

위의 예제에서 정의한 MyListNode 클래스를 사용하는 코드는 다음과 같습니다.

 

import 'dart:collection';

void main() {
  // 이중 연결 리스트 생성
  var myList = LinkedList<MyListNode>();

  // 리스트에 항목 추가
  var node1 = MyListNode(10);
  var node2 = MyListNode(20);
  var node3 = MyListNode(30);
  myList.add(node1);
  myList.add(node2);
  myList.add(node3);

  // 리스트 순회
  for (var node in myList) {
    print(node.value);
  }
}

 

위의 코드에서 MyListNode 클래스를 사용하여 이중 연결 리스트를 구현합니다. 먼저 LinkedList<MyListNode>()을 사용하여 빈 이중 연결 리스트를 생성합니다.

그런 다음 MyListNode 클래스의 인스턴스를 생성하여 리스트에 추가합니다. 이를 통해 리스트를 초기화하고, 이중 연결 리스트에 항목을 추가합니다.

마지막으로 for-in 루프를 사용하여 리스트를 순회하면서, 각 항목의 value 프로퍼티를 출력합니다. 출력 결과는 다음과 같습니다.

 

10
20
30

 

위의 예제에서는 MyListNode 클래스를 사용하여 이중 연결 리스트를 구현하였습니다. MyListNode 클래스는 extends LinkedListEntry를 사용하여 Doubly linked list(이중 연결 리스트)의 항목(entry)을 나타내는 클래스로 정의되었습니다. 이를 통해 이중 연결 리스트의 각 노드는 MyListNode 클래스의 인스턴스로 표현됩니다.

 

 

 
반응형

댓글