数据类型List

71 阅读1分钟
//数据类型List

void main(List<String> args) {

//List list = [];//不限制元素的数据类型

//List list = <int>[];//限制元素的数据类型为int

//声明List-字面量

List l1 = ['a', 'b', 'c', 1, 2, 3]; //不限制元素的数据类型

print(l1);

  


List l2 = <int>[1, 2, 3]; //限制元素的数据类型为int

print(l2);

  


//通过构造函数的声明方式

var l3 = List.empty(growable: true);

l3.add(1);

print(l3);

  


var l4 = List.filled(3, 6);

print(l4);

  


//扩张操作符

List l5 = [0, ...l4];

print(l5);

  


var l6;

List l7 = [7, ...?l6];

print(l7);

  


//返回列表长度

print(l1.length);

  


//列表的反转

print(l1.reversed.toList());

  


//添加元素

l3.addAll([4, 5, 6]);

print(l3);

  


//删除元素

l3.remove(6);

print(l3);

  


//根据下标删除元素

l3.removeAt(1);

print(l3);

  


//在指定位置添加元素

l3.insert(1, 9);

print(l3);

  


//清空

l3.clear();

print(l3.length);

print(l3.isEmpty);

  


//合并元素

List words = ['Hello', 'World'];

print(words.join('-'));

  


List nums = [1, 2, 3];

//for循环进行遍历

for (var i = 0; i < nums.length; i++) {

print(nums[i]);

}

  


//for---in

for (var item in nums) {

print(item);

}

  


//forEach

nums.forEach((element) {

print(element);

});

  


var newNums1 = [];

for (var i = 0; i < nums.length; i++) {

newNums1.add(nums[i] * nums[i]);

}

print(newNums1);

  


//map循环会得到一个处理后的列表

var newNums2 = nums.map((e) {

return e * e;

});

print(newNums2.toList());

  


//where 返回符合条件的元素

//判断数字是否是奇数

// bool isOdd(n) => n % 2 == 1;

bool isOdd(n) {

return n % 2 == 1;

}

  


var oddNum = nums.where((element) => isOdd(element));

print(oddNum.toList());

  


//使用any 来检测是否有奇数(至少一个)

print(nums.any((element) => isOdd(element)));

  


//使用every 来判断是否都是奇数

print(nums.every((element) => isOdd(element)));

  


//扩展

var pairs = [

[1, 2],

[3, 4],

];

var flattened = pairs.expand((element) => element).toList();

print(flattened);

  


var result = nums.fold(2, (p, element) => p);

print(result);

}