美文网首页
5.Dart-集合类型List,Set,Map

5.Dart-集合类型List,Set,Map

作者: 你的胡霸霸 | 来源:发表于2021-09-03 11:09 被阅读0次

/**

* List里面常用的属性和方法

*  常用属性:

*    length        长度

*    reversed      翻转

*    isEmpty      是否为空

*    isNotEmpty    是否为不空

*

*  常用方法:

*    add        增加

*    addAll    拼接数组

*    indexOf    查找 传入具体值返回index,没有返回-1

*    remove    删除 传入具体值

*    removeAt  删除 传入具体值

*    fillRange  修改

*    insert(index, value)  指定位置插入

*    insertAll(index, List) 指定位置插入List

*    toList()  其他类型转化成List

*    join()    List转换成字符串

*    split()    字符串转化成List

*    forEach    遍历

*    map

*

*

*

* Set

* 用它最主要的功能就是出数组重复内容

* Set是没有书序且不能重复的集合,不能通过索引去获取值

*

*

* Map映射 是无序的键值对

*  常用属性:

*    keys        获取所有的key值

*    values      获取所有的value值

*    isEmpty    是否为空

*    isNotEmpty  是否不为空

*  常用方法:

*    remove(key)  删除指定key的数据

*    addAll({...}) 合并映射

*    containsValue 查看映射内的值, 返回true/false 

*    forEach

*    map

*    where

*    any

*    every

*

*

*for in  对于List可以, Map不能用

  forEach 对于List和Map都可以

*/

void main() {

  aboutList();

  // aboutSet();

  // aboutMap();

}

// List相关

void aboutList() {

  var l1 = ["苹果"];

  l1.add("香蕉");

  // reversed只是翻转得到的不是List,需要用toList转一下

  var t1 = l1.reversed;

  print("t1 = $t1"); //(香蕉, 苹果)

  var l2 = t1.toList();

  print("l2 = $l2"); //[香蕉, 苹果]

  // 拼接数组

  l1.addAll(["梨子", "西瓜"]);

  print("l1 = $l1");

  var idx = l1.indexOf("苹果");

  print("idx = $idx");

  // 没有这个值返回的就是-1

  idx = l1.indexOf("菠萝");

  print("idx = $idx");

  // l1.remove("苹果");

  // l1.removeAt(2);

// fillRange,range是前包后不包,比如下面是从0开始到2结束,0,1,2三个下标对应的元素都改为"回笼过"

  print(l1);

  l1.fillRange(0, 3, "火龙果");

  print(l1);

  var str = l1.join("-");

  print(str); //火龙果-火龙果-火龙果-西瓜

  l2 = str.split("-");

  print(l2); //[火龙果, 火龙果, 火龙果, 西瓜]

  // 循环遍历 for in

  for (var item in l2) {

    print(item);

  }

  // forEach

  l2.forEach((element) {

    print(element);

  });

// List的

  // 1.map方法 返回一个新的List

  var l4 = [1, 2, 3, 4, 5];

  var l3 = l4.map((e) {

    return e * 3;

  }).toList();

  print("l3 = $l3");

  // 2.where方法,就是判断,条件选择

  var l5 = l4.where((element) {

    return element % 2 == 0;

  }).toList();

  print("l5 = $l5"); //[2,4]

  // 3.any方法,就是只要List里面有一个满足条件就返回true

  // 下面这种写法箭头函数,只有一行代码可以简写,和swift很像

  var l6 = l4.any((element) => element % 2 == 0);

  print("l6 = $l6"); //true

  // 4.every方法,就是要List里面所以元素都满足条件就返回true, 有一个不满足就返回false

  var l7 = l4.every((element) {

    return element % 2 == 0;

  });

  print("l7 = $l7"); //false

}

// Set 的大部分属性和方法是和List是一样的

void aboutSet() {

  var s = new Set();

  s.add("香蕉");

  s.add("香蕉");

  s.add("苹果");

  s.add("苹果");

  print("s = $s"); //{香蕉, 苹果}

  // 转换成List

  var l = s.toList();

  print(l); //[香蕉, 苹果]

}

// Map 的映射

void aboutMap() {

  var person = {"name": "张三", "age": 20};

  var m = new Map();

  m["name"] = "李四";

  print(person); //{name: 张三, age: 20}

  print(m); //{name: 李四}

  print(person.keys.toList()); //[name, age]

// 使用forEach遍历

  person.forEach((key, value) {

    print("person[$key] = $value");

  });

}

相关文章

网友评论

      本文标题:5.Dart-集合类型List,Set,Map

      本文链接:https://www.haomeiwen.com/subject/vxyxwltx.html