万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    DartでのLinkedList

    KotlinのLinkedListDartで!

    Dartでは、LinkedListに相当するデータ構造はdart:collectionライブラリのLinkedListクラスです。このクラスは、双方向連結リストを提供し、要素の追加や削除が高速に行えます。ただし、要素へのアクセスは、リストや配列に比べて遅くなることがあります。

    DartのLinkedListを使用するには、dart:collectionライブラリをインポートする必要があります。以下に使用例を示します。

    import 'dart:collection';
    
    void main() {
      final list = LinkedList<MyLinkedListEntry>();
    
      // 要素を追加
      list.add(MyLinkedListEntry('apple'));
      list.add(MyLinkedListEntry('banana'));
      list.add(MyLinkedListEntry('cherry'));
    
      // 要素を削除
      list.remove(list.firstWhere((element) => element.value == 'banana'));
    
      // 要素にアクセス
      final firstElement = list.first;
      final lastElement = list.last;
    
      // イテレータを使用してリストを操作
      for (final element in list) {
        print(element.value);
      }
    }
    
    class MyLinkedListEntry extends LinkedListEntry<MyLinkedListEntry> {
      final String value;
    
      MyLinkedListEntry(this.value);
    }

    はい、その通りです。value変数は必須ではありません。value変数は、上記の例でMyLinkedListEntryクラスに追加したカスタムフィールドであり、LinkedListEntryを継承したクラスには必ずしも必要ではありません。

    LinkedListEntryを継承したクラスには、任意のフィールドやメソッドを追加できます。valueフィールドは単なる例であり、実際のアプリケーションで必要なデータや機能を持たせるために、カスタムクラスを作成して使用します。

    valueは必須ではない。ほんの一例とのこと。 class MyLinkedListEntry extends LinkedListEntry<MyLinkedListEntry> {みたいに継承しないと LinkedList<MyLinkedListEntry>();してくれないルール。