美文网首页
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