Flutter学习-dart(4):dart常用数据结构

这篇博客介绍了Dart语言中的常见数据结构,包括List的长度、添加、删除等方法,Set的无序和去重特性,Map的键值对操作,以及遍历集合的各种方法,如forEach、map、where等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. List

1.1 常见属性
  • length 长度
  • reversed 翻转
  • isEmpty 是否为空
  • isNotEmpty 是否不为空
1.2 常用方法
  • add(item) 增加
  • addAll(List list) 拼接数组
  • indexOf(item) 查找 传入具体值; indexOf查找数据 查找不到返回-1 查找到返回索引值
  • remove(item) 删除 传入具体值
  • removeAt(index) 删除 传入索引值
  • fillRange(int start,int end, [E? fillValue]) 修改
  • insert(index,value); 指定位置插入
  • insertAll(index,list) 指定位置插入List
  • toList() 其他类型转换成List
  • join(char) List转换成字符串
  • split(char) 字符串转化成List
  • forEach
  • map
  • where
  • every
  • any

2. Set

  • 特点: Set是没有顺序且不能重复的集合,所以不能通过索引去获取值
  • 最主要的功能就是去除数组重复内容
void main(){
  var s=new Set();
  s.add('香蕉');
  s.add('苹果');
  s.add('苹果');
  print(s);   //{香蕉, 苹果}
  print(s.toList()); 


  List myList=['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];
  var s=new Set();
  s.addAll(myList);
  print(s);
  print(s.toList());
}

3. Map

  • Maps是无序的键值对
3.1 常用属性
  • keys 获取所有的key值
  • values 获取所有的value值
  • isEmpty 是否为空
  • isNotEmpty 是否不为空
3.2 常用方法
  • remove(key) 删除指定key的数据
  • addAll({…}) 合并映射 给映射内增加属性
  • containsValue(Object? value) 查看映射内的值 返回true/false
  • containsKey(Object? key)
  • forEach
  • map
  • where
  • any
  • every
//常用属性:
    Map person={
      "name":"张三",
      "age":20,
      "sex":"男"
    };

    print(person.keys.toList());
    print(person.values.toList());
    print(person.isEmpty);
    print(person.isNotEmpty);

//常用方法:
void main() {
    Map person={
      "name":"张三",
      "age":20,
      "sex":"男"
    };

    person.addAll({
      "work":['敲代码','送外卖'],
      "height":160
    });

    print(person);
    person.remove("sex");
    print(person);
    print(person.containsValue('张三')); //true
}

4. 遍历集合的集中方法

  1. void forEach(void Function(dynamic) action)
  2. Iterable map (T Function(dynamic) toElement)
  3. Iterable where(bool Function(dynamic) test) 返回符合条件的集合元素
  4. bool any(bool Function(dynamic) test) :只要集合里面有满足条件的就返回true
  5. bool every(bool Function(dynamic) test): 每一个都满足条件返回true 否则返回false
examples:
main() {
  List myList = ['香蕉', '苹果', '西瓜'];
  myList.forEach((value) {
    print("$value");
  });
  
  
  List myList2 = [1, 3, 4];
  var newList = myList2.map((value) {
    return value * 2;
  });
  print(newList.toList()); //[2, 6, 8]

  
  List myList3 = [1, 3, 4, 5, 7, 8, 9];
  var newList2 = myList3.where((value) {
    return value > 5;
  });
  print(newList2.toList()); //[7, 8, 9]

  
  List myList4 = [1, 3, 4, 5, 7, 8, 9];
  var f = myList4.any((value) {
    //只要集合里面有满足条件的就返回true
    return value > 5;
  });
  print(f); //true
  
  
  List myList5 = [1, 3, 4, 5, 7, 8, 9];
  var f1 = myList5.every((value) {
    //每一个都满足条件返回true  否则返回false
    return value > 5;
  });
  print(f1); //false
  
  
  // set
  var s = new Set();
  s.addAll([1, 222, 333]);
  s.forEach((value) => print(value));

  
  //map
  Map person = {"name": "张三", "age": 20};
  person.forEach((key, value) {
    print("$key---$value");
  });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值