Dart:List数组常用api

718 阅读2分钟

List

  var fruits = ['apples', 'oranges'];
  fruits.add('kiwis');
  fruits.addAll(['grapes', 'bananas']);
  
  // indexOf查找元素位置,返回索引
  var appleIndex = fruits.indexOf('apples');
  print(appleIndex); // 0
  
  // removeAt通过索引删除元素
  fruits.removeAt(appleIndex);
  print(fruits); // [oranges, kiwis, grapes, bananas]
  
  // contains是否包含一个元素
  print(students.contains('bananas')); // true
  
  // clear清空数组
  fruits.clear();
  
  // isEmpty判断数组是否是空
  print(fruits.isEmpty); // true

  // 用特定元素填充已知长度的数组
  var vegetables = List.filled(3, 'broccoli');
  print(vegetables); // [broccoli, broccoli, broccoli]
  
  // every判断数组中是否每个元素都满足指定的条件用 every() 方法
  print(vegetables.every((v) => v == 'broccoli'));
  
  List numbers = [2, 8, 4, 6, 7, 3];
  
  // any只要有一个条件满足条件就返回true
  print(numbers.any((element) => element == 8)); // true
  
  // reduce将数组中的每一个值与前面返回的值相加,最后返回相加的总和
  print(numbers.reduce((value, element) => value + element)); // 30
  
  //fold() 用法跟 reduce() 基本一样,只不过是可以提供一个初始值
  print(numbers.fold(10, (value, element) => (value as int) + element)); // 40
  
  // forEach遍历数组
  numbers.forEach((element) => print(element));
  
  // map可以用来操作已知数组里的每一项,然后返回一个新数组
  print(numbers.map((e) => e + 1).toList()); // (3, 9, 5, 7, 8, 4)
  
  // sort排序
  numbers.sort((a, b) => a.compareTo(b));
  print(numbers); // [2, 3, 4, 6, 7, 8]
  
   // where返回数组中满足给定条件的元素集合
  print(numbers.where((element) => element >= 6).toList()); //[6, 7, 8]

  // firstWhere返回数组中满足给定条件的第一个元素
  print(numbers.firstWhere((element) => element >= 6)); // 6

  // 返回数组中满足给定条件的唯一一个元素,若有多个元素满足条件会抛出异
  print(numbers.singleWhere((element) => element >= 8)); // 8
  
  // take(n) 从数组里取 n 个元素
  print(numbers.take(2).toList()); // [2, 3]

  // skip(n) 跳过数组中的 n 个元素
  print(numbers.skip(2).toList()); // [4, 6, 7, 8]
  
    // expand展开元素
  numbers = [
    [1, 2],
    [3, 4]
  ];
  print(numbers.expand((element) => element).toList()); // [1, 2, 3, 4]
  
  // 克隆一个数组
  List.from(numbers);
  

Set

// 构造函数
Set()
Set.from()
Set.identity()
Set.of
Set.unmodifiable
// 属性
first
hashCode
isEmpty 
isNotEmpty 
iterator
last 
length
runtimeType
single
方法
add
addAll
any
cast
clear
contains
containsAll
difference
elementAt
every
expand
firstWhere
fold
followedBy
forEach
intersection
join
lastWhere
lookup
map
noSuchMethod
reduce
remove
removeAll
removeWhere
retainAll
retainWhere
singleWhere
skip
skipWhile
take
takeWhile
toList
toSet
toString
union
where
whereType

Map