Flutter/Dart - 集合类型List、Map详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter/Dart - 集合类型List、Map详解相关的知识,希望对你有一定的参考价值。

参考技术A 数组去重

Map的定义
第一种定义方式

第二种定义方式

Map的属性

Map的方法

Flutter之Dart语法-数据类型

  • 变量与常量

Dart中用var声明一个变量,如果想设置一个变量不可变,那么可以使用final或者const修饰。

var number;
number = 12;
print("the number is $number");

number = "20";
print(number);

final sum = 10;

const count = 2;
  • 字符串

字符串的几种创建方式

  1. 使用单引号、双引号
  2. 使用三个引号、双引号创建多行字符串
  3. 使用r创建原始字符串,使转义字符无效
  var a = 'hahha';
  print(a);
  var b = "hoho";
  print(b);
  
  var c = ''' I
  have
  a
  dream
  !
  ''';
  print(c);

  var d = """do
  you
  have
  dream
  ?
  """;
  print(d);

  var e = "can \\nyou \\nuse \\nflutter ?";
  var f = r"can \\nyou \\nuse \\nflutter ?";
  print(e);
  print(f);

输出结果

//输出结果
/*
hahha
hoho
 I
  have
  a
  dream
  !

do
  you
  have
  dream
  ?

can 
you 
use 
flutter ?
can \\nyou \\nuse \\nflutter ?

*/

字符串操作

  1. 运算符 + 、*、===、[]
    String a = "11";
    print(a + a);
    print(a * 3);
    print(a == "22");
    print([a,a,a,a]);
  1. 插值表达式${}
  2. 常用属性length、isEmpty、isNotEmpty
  3. 常用方法
     //contains
    String str1 = "i am a ios developer";
    String subStr = "ios";
    if (str1.contains(subStr)) {
      print("str1 contains subStr");
    }

    // substring
    String subStr1 = str1.substring(12);
    String subStr2 = str1.substring(8,10);
    print("frist subString is $subStr1 , second subString is $subStr2");

    // startsWith
    bool isStart = str1.startsWith("i");
    if (isStart) {
      print("object");
    }
    // endsWith
    bool isEnd = str1.endsWith("developer");
    if (isEnd) {
      print("object");
    }

    str1.indexOf("ios");
    str1.indexOf("i",2);
    str1.lastIndexOf("i");
    str1.lastIndexOf("i",2);

    String upStr = str1.toUpperCase();
    String lowerStr = upStr.toLowerCase();
    print(upStr + lowerStr);

    str1.trim();
    str1.trimLeft();
    str1.trimRight();

    str1.split("ios");
    str1.replaceAll("ios", "flutter");
  • List

dart中的数组分为可变数组和不可变数组,而且数组里面可以放不同类型的数据。List也提供了很多便捷的方法分。

     //可变数组
    var list = [1,2,3];
    //不可变数组
    var list2 = const [1,2,3,4];
    //数字里面可以放不同类型的数据
    var list3 = [1,2,"ios",list];
    //常用方法
    print(list.length); //获取长度
    list.add(4);        //添加元素
    list.remove(4);     //移除元素
    list3.insert(3, "android");  //在指定索引添加元素
    var index = list3.indexOf("ios");  //返回元素的索引
    list3.shuffle();  //打乱数组里面的顺序
    //遍历数组
    list3.forEach((element) {
      print(element);
    });
  • Map

在Dart中,Map用key-value形式储存,key和value都能是任何类型的对象,key唯一。Map同样也分为可变和不可变两种。

//创建可变Map
    Map person = {
      "name": "xiaoming",
      "height":180,
      "age":29,
    };
    //创建不可变Map
    Map dog = const {
      "name": "xiaohua",
      "kind": "erha",
    };
    person.remove("age"); //移除key age
    person.clear(); //清除map
    person.addAll(dog); //把狗变成人了

    person.containsKey("name");   //判断key中是否有“name”
    person.containsValue("xiaoming"); //判断value中是否有“小明”
    var values = person.values; //获取所有value
    var keys = person.keys;  //获取所有key
    //遍历Map
    person.forEach((key, value) {
      print("dog de $key is $value");
    });

以上是关于Flutter/Dart - 集合类型List、Map详解的主要内容,如果未能解决你的问题,请参考以下文章

第三节: Dart 中常用集合 List/Map

Flutter/Dart - “List<dynamic>”不是“List<Product>”类型的子类型

如何在 Dart 中创建一个空 Set

Flutter 使用 Stream 检索 Firestore 集合

【Dart/Flutter】一些常用的基本数据格式转换

Flutter/Dart - Dart中的抽象类 多态 和接口