[ダーツ]フラッターコレクション型一覧データ型(カスタムコレクション|初期設定|一般的な使用方法|セット生成機能| |初期化後の追加要素セットをトラバース)



定義と初期化のI.セット



リストのコレクションを定義し、初期化: 収集、及び初期化のコレクションを定義します。


①データ収集要素タイプ: コレクション要素は、任意のタイプのデータを受け入れることができ、一般的なタイプです。

②要素タイプのセット: いいえジェネリック場合、コレクションは、要素の異なるタイプに格納することができ、

例③:同時に保存するint型、ダブル、文字列、ジェネリック、不特定のセット内の要素のブールタイプ。

添加元素初期化子④リストの収集: 要素の使用[]初期化セット。


List list = [1, 1.0, '字符串' , true];

//使用 print 可以直接打印集合
//打印集合 list : [1, 1.0, 字符串, true]
print("打印集合 list : $list");


一般的な使用法のII。設定



ジェネリックコレクション:


①一般的な指定: とき、コレクションの宣言が指定する一般的な場合には、それが唯一の要素の一般的なタイプで保存することができます。

(一般的なint型の指定されたセット、int型は要素だけを保存することができます)


②譲渡の制限: 異なるジェネリックリストの収集容器が相互間の量を割り当てることはできません。


List<int> list_int = [1 , 2, 3];

//打印集合 list1 : [1, true]
print("打印集合 list_int : $list_int");


III。添加元素セット



1セットの要素が追加される: コレクションは、初期化時以外の要素を追加するだけでなく、コール(のセットを追加することができる)とのaddAll()添加元素。


2つの要素を追加: によって追加() 単一要素法を追加します。

List list1 = [];

list1.add(1);
list1.add(true);

//打印集合 list1 : [1, true]
print("打印集合 list1 : $list1");

複数の要素を追加し3: によってのaddAll() メソッドの複数の要素を追加します。

List list = [1, 1.0, '字符串' , true];  
List list2 = [];

list2.addAll(list);

//打印集合 list2 : [1, 1.0, 字符串, true]
print("打印集合 list2 : $list2");


IV。セットの生成機能



1セット生成機能: リストのコールセット生成()メソッドを生成する機能が要求発生素子上に生成することができる呼び出します。


2は、()関数のプロトタイプを生成します。


①int型の長さパラメータ: 要素のリストセット番号;

②Eジェネレータ(INTインデックス)パラメータ: インデックスはインデックス要素であるコールバック関数要素を生成するステップと

  /**
   * Generates a list of values.
   *
   * Creates a list with [length] positions and fills it with values created by
   * calling [generator] for each index in the range `0` .. `length - 1`
   * in increasing order.
   *
   *     new List<int>.generate(3, (int index) => index * index); // [0, 1, 4]
   *
   * The created list is fixed-length unless [growable] is true.
   */
  factory List.generate(int length, E generator(int index),
      {bool growable = true}) {
    List<E> result;
    if (growable) {
      result = <E>[]..length = length;
    } else {
      result = List<E>(length);
    }
    for (int i = 0; i < length; i++) {
      result[i] = generator(i);
    }
    return result;
  }

3.コード例:

//集合的生成函数
//  int length 参数 : 集合的长度
//  E generator(int index) : 集合的回调函数 , 调用该函数获取集合的 index 位置的元素
List list_generate = List.generate(3, ( index ) => index * 3);

//打印集合 list_generate : [0, 3, 6]
print("打印集合 list_generate : $list_generate");


V.コレクショントラバーサル



サイクル条件のための一般的なベルトによって介して1ループ。

// 1 . 方式 1 : 通过下标访问集合
for(int i = 0; i < list_generate.length; i ++){
  print(list_generate[i]);
}

ループ反復するためlist_generateスタイルでのvar OBJによって2:

// 2 . 方式 2 : 通过 var obj in list_generate 获取集合中的元素
for( var obj in list_generate ){
  print(obj);
}

それぞれの場合によって通じ3.ループ:

// 3 . 方式 3 : For Each 循环
list_generate.forEach( ( element ){
  print(element);
} );


VI。コレクションサンプルコード



1.サンプルコード:


import 'package:flutter/material.dart';

class DartType_List extends StatefulWidget {
  @override
  _DartType_ListState createState() => _DartType_ListState();
}

class _DartType_ListState extends State<DartType_List> {
  @override
  Widget build(BuildContext context) {

    listDemo();

    return Container(child: Text('List 数据类型'));
  }


  /**
   * List 示例集合
   */
  listDemo(){


    // I . 定义集合


    //定义集合 , 并对集合初始化
    //  集合元素数据类型 : 集合元素类型是泛型 , 可以接受任何数据类型
    //  集合元素种类 : 如果没有指定泛型 , 集合中可以存放不同类型的元素
    //      如在一个未指定泛型的集合中同时存放 int , double , String , bool 类型的元素
    //  初始化添加元素 : 使用 [] 初始化集合元素
    List list = [1, 1.0, '字符串' , true];

    //使用 print 可以直接打印集合
    //打印集合 list : [1, 1.0, 字符串, true]
    print("打印集合 list : $list");


    // II . 集合泛型用法


    //如果集合声明时 , 指定了泛型 , 那么就只能存放该泛型类型的元素
    //  如 : 指定 int 泛型类型的集合 , 只能存放 int 类型的元素
    //       泛型不同的 List 集合斌量之间不能相互赋值
    //       不能将上面的 list 集合赋值给 该 list_int
    List<int> list_int = [1 , 2, 3];

    //打印集合 list1 : [1, true]
    print("打印集合 list_int : $list_int");


    // III . 初始化后添加元素


    //集合除了在初始化时添加元素外
    //  还可以调用集合的 add ( ) 和 addAll ( ) 添加元素

    // 通过 add ( ) 方法 添加单个元素
    List list1 = [];

    list1.add(1);
    list1.add(true);

    //打印集合 list1 : [1, true]
    print("打印集合 list1 : $list1");


    // 通过 addAll ( ) 方法 添加多个元素
    List list2 = [];

    list2.addAll(list);

    //打印集合 list2 : [1, 1.0, 字符串, true]
    print("打印集合 list2 : $list2");



    // IV . 集合的生成函数


    //集合的生成函数
    //  int length 参数 : 集合的长度
    //  E generator(int index) : 集合的回调函数 , 调用该函数获取集合的 index 位置的元素
    List list_generate = List.generate(3, ( index ) => index * 3);

    //打印集合 list_generate : [0, 3, 6]
    print("打印集合 list_generate : $list_generate");



    // V . 集合遍历


    // 1 . 方式 1 : 通过下标访问集合
    for(int i = 0; i < list_generate.length; i ++){

      print(list_generate[i]);

    }

    // 2 . 方式 2 : 通过 var obj in list_generate 获取集合中的元素
    for( var obj in list_generate ){

      print(obj);

    }

    // 3 . 方式 3 : For Each 循环

    list_generate.forEach( ( element ){

      print(element);

    } );

    

  }


}


2.結果:

打印集合 list : [1, 1.0, 字符串, true]
打印集合 list_int : [1, 2, 3]
打印集合 list1 : [1, true]
打印集合 list2 : [1, 1.0, 字符串, true]
打印集合 list_generate : [0, 3, 6]
0
3
6
0
3
6
0
3
6
公開された307元の記事 ウォンの賞賛1043 ビュー170万+

おすすめ

転載: blog.csdn.net/han1202012/article/details/104953053