Flutter开发-Dart基础语法(三)(集合类型List、Set、Map属性详解)

670 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情

一、集合类型List

常用属性:

属性名称作用
length长度
reversed翻转
isEmpty是否为空
isNotEmpty是否不为空

常用方法:

方法名称作用
add增加
addAll拼接数组
indexOf查找 传入具体值
remove删除 传入具体值
removeAt删除 传入具体值
fillRange修改
insert(index,value)指定位置插入
insertAll(index,list)指定位置插入List
toList()其他类型转换成List
join()List转换为字符串
split()字符串转为List
forEach
map
where
any
every

常用属性解析:

void main() {
  List myList = ['香蕉', '苹果', '西瓜'];
  print(myList.length);
  print(myList.isEmpty);
  print(myList.isNotEmpty);
  print(myList.reversed);
  print(myList.reversed.toList());
}

image.png

常用方法解析:

1.add、addAll

void main() {
  List myList = ['香蕉', '苹果', '西瓜'];
  myList.add('草莓'); // 增加数据 只增加一个
  myList.addAll(['葡萄', '桃子']); // 拼接数组
}

2.indexOf

void main() {
  List myList = ['香蕉', '苹果', '西瓜'];
  print(myList.indexOf('苹果')); // indexOf查找数据 找不到返回-1 找的到返回下标
}

3.remove、removeAt

void main() {
  List myList = ['香蕉', '苹果', '西瓜'];
  myList.remove('草莓'); // 移除 按属性名
  myList.removeAt(1); // 移除 按下标
}

4.fillRange

void main() {
  List myList = ['香蕉', '苹果', '西瓜', '葡萄'];
  myList.fillRange(1, 3, 'fill'); // 修改某个范围内字段 包含头部下标 不包含尾部下标
  print(myList);
}

image.png

5.insert

void main() {
  List myList = ['香蕉', '苹果', '西瓜', '葡萄'];
  myList.insert(1, 'fill');
  print(myList);
}

6.join

void main() {
  List myList = ['香蕉', '苹果', '西瓜', '葡萄'];
  String str = myList.join(',');
  print(str);
}

7.split

void main() {
  String str = '香蕉-苹果-西瓜';
  List myList = str.split('-');
  print(myList);
}

二、集合类型Set

void main() {
  var s = new Set();
  s.add('香蕉');
  s.add('香蕉'); // 对集合进行去重
  print(s);
  print(s.toList());
}

image.png

对集合进行去重

void main() {
  List myList = ['苹果', '香蕉', '葡萄', '苹果', '香蕉', '葡萄'];
  var s = new Set();
  s.addAll(myList);
  print(s.toList());
}

image.png

三、集合类型Map里面常用的属性和方法

常用属性:

属性名称作用
keys获取所有的key值
values获取所有的value值
isEmpty是否为空
isNotEmpty是否不为空

常用方法:

方法名称作用
remove(key)删除指定key的数据
addAll({...})合并映射 给映射内增加属性
containsValue查看映射内的值 返回true/false
forEach删除 传入具体值
map删除 传入具体值
where
any
every

常用属性解析:

void main() {
  var person = {"name": "王小二", "age": 13};
  print(person.keys);
  print(person.keys.toList());
  print(person.values);
  print(person.values.toList());
  print(person.isEmpty);
  print(person.isNotEmpty);
}

image.png

常用方法解析:

1.addAll

void main() {
  var person = {"name": "王小二", "age": 13};
  person.addAll({
    "work": ['学习'],
    "sex": '男'
  });
  print(person);
}

2.remove

void main() {
  var person = {"name": "王小二", "age": 13};
  person.remove("age");
  print(person);
}

3.containsValue

void main() {
  var person = {"name": "王小二", "age": 13};
  person.containsKey("age");
  print(
      '包含key-age:${person.containsKey("age")},value-王小二:${person.containsValue("王小二")}');
}

image.png 4.remove

void main() {
  var person = {"name": "王小二", "age": 13};
  person.remove("age");
  print(person);
}

5.remove

void main() {
  var person = {"name": "王小二", "age": 13};
  person.remove("age");
  print(person);
}