【Flutter】Dart语法之List & Map

2,119 阅读2分钟
【Flutter】学习笔记——Dart中的List & Map的使用
  • list列表,相当于 OC 中的 NSArray 数组,分为可变不可变两种。
  • map键值对,相当于 OC 中的 NSDictionary 字典,也分为可变不可变两种。

1. list数组

list默认都是可变的,列表中可以添加不同数据类型的数据。

1.1 可变list
void main() { 
    // 直接 list创建 
    List a = ["1", 2, "3.0", 4.0];
    print(a);
    
    // var 创建 
    var list = [1, 2, "zjp", 3.0];
    print(list);
}

运行结果如下:

image.png

1.2 常用方法

获取&修改指定下标数据:

// 直接获取指定下标数据 
print(list[3]); 
// 直接修改指定下标数据 
list[3] = "reno";

插入数据:

list.insert(1, "hellow"); // list.insert(index, element)
print(list);

删除数据:

list.remove(1); // list.remove(element)
print(list);

清空所有数据:

list.clear();
print(list);

运行结果如下:

image.png

1.3 排序和截取
void main() {
    List b = [3, 4, 5, 8, 6, 7];
    // 排序
    b.sort();
    print(b);
    // 截取
    print(b.sublist(1, 3));
}

运行结果如下:

image.png

1.4 不可变list

不可变的 list 需要使用const修饰。

void main() {
    List b = const [3, 4, 5, 8, 6, 7];
    b[3] = 10; // 报错
}

不可变list不能修改其元素值,否则会报错

image.png

2. map键值对

map默认也是可变的。

2.1 可变map
void main() {
    Map a = {"a": 1, "b": 2}; 
    print(a); 
    
    var a1 = {"a1": 1, "a2": 2}; 
    print(a1);
}

运行结果如下:

image.png

2.2 常用方法

获取&修改指定下标数据:

// 直接获取指定下标数据 
print(a["a"]);
// 直接修改指定下标数据 
a["a"] = "aa";
print(a["a"]);

获取map长度

print(a.length);

获取map所有的key

print(a.keys);

获取map所有的value

print(a.values);

运行结果如下:

image.png

2.3 不可变map

不可变的 map 也是使用const修饰。

void main() {
    Map a = const {"a": 1, "b": 2}; 
    a["a"] = 10; // 报错
}

不可变map不能修改其元素值,否则也会报错

image.png

3. list转map

void main() {
    List b = ["zjp", "reno"];
    print(b.asMap());
}

运行结果如下:

image.png