文章目录
I . 定义集合并初始化
II . 集合泛型用法
III . 集合添加元素
IV . 集合生成函数
V . 集合遍历
VI . 集合示例代码
I . 定义集合并初始化
定义并初始化 List 集合 : 定义集合 , 并对集合初始化 ;
① 集合元素数据类型 : 集合元素类型是泛型的 , 可以接受任何数据类型 ;
② 集合元素种类 : 如果没有指定泛型 , 集合中可以存放不同类型的元素 ,
③ 举例 : 在一个未指定泛型的集合中同时存放 int , double , String , bool 类型的元素 ;
④ List 集合初始化添加元素 : 使用 [] 初始化集合元素 ;
List list = [1, 1.0, '字符串' , true]; //使用 print 可以直接打印集合 //打印集合 list : [1, 1.0, 字符串, true] print("打印集合 list : $list");
II . 集合泛型用法
集合泛型 :
① 指定泛型 : 如果集合声明时 , 指定了泛型 , 那么就只能存放该泛型类型的元素 ;
( 指定 int 泛型类型的集合 , 只能存放 int 类型的元素 )
② 赋值限制 : 泛型不同的 List 集合斌量之间不能相互赋值 ;
List<int> list_int = [1 , 2, 3]; //打印集合 list1 : [1, true] print("打印集合 list_int : $list_int");
III . 集合添加元素
1 . 集合元素添加 : 集合除了在初始化时添加元素外 , 还可以调用集合的 add ( ) 和 addAll ( ) 添加元素 ;
2 . 添加单个元素 : 通过 add ( ) 方法 添加单个元素 ;
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 . 集合生成函数 : 调用集合 List 的 generate ( ) 方法 , 可以调用生成函数生成根据需求产生的元素 ;
2 . generate ( ) 函数原型 :
① int length 参数 : List 集合元素个数 ;
② E generator(int index) 参数 : 生成元素的回调函数 , 其中 index 是元素索引值 ;
/** * 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 . 通过 带循环条件的 普通 for 循环遍历 :
// 1 . 方式 1 : 通过下标访问集合 for(int i = 0; i < list_generate.length; i ++){ print(list_generate[i]); }
2 . 通过 var obj in list_generate 样式的 for 循环遍历 :
// 2 . 方式 2 : 通过 var obj in list_generate 获取集合中的元素 for( var obj in list_generate ){ print(obj); }
3 . 通过 For Each 循环遍历 :
// 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]