Flutter学习笔记1.4 Dart基础(List Set M

2022-04-22  本文已影响0人  艾伦oy

List集合数据操作

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 //只要集合里面有满足条件的就返回true
every/每一个都满足条件返回true 否则返回false

示例代码:

void main() {
  List myList = ['香蕉', '苹果', '西瓜'];
  print(myList[1]);

  var list = new List(); //新版本没法使用
  list.add('111');
  list.add('222');
  print(list);

//List里面的属性:
  List myList = ['香蕉', '苹果', '西瓜'];
  print(myList.length);
  print(myList.isEmpty);
  print(myList.isNotEmpty);
  print(myList.reversed); //对列表倒序排序
  var newMyList = myList.reversed.toList();
  print(newMyList);

//List里面的方法:

  List myList = ['香蕉', '苹果', '西瓜'];
  myList.add('桃子'); //增加数据  增加一个

  myList.addAll(['桃子', '葡萄']); //拼接数组

  print(myList);

  print(myList.indexOf('苹x果')); //indexOf查找数据 查找不到返回-1  查找到返回索引值

  myList.remove('西瓜');

  myList.removeAt(1);

  print(myList);

  List myList = ['香蕉', '苹果', '西瓜'];

  myList.fillRange(1, 2, 'aaa'); //修改

  myList.fillRange(1, 3, 'aaa');

  myList.insert(1, 'aaa'); //插入  一个

  myList.insertAll(1, ['aaa', 'bbb']); //插入 多个

  print(myList);

  List myList = ['香蕉', '苹果', '西瓜'];

  var str = myList.join('-'); //list转换成字符串

  print(str);

  print(str is String); //true

  var str = '香蕉-苹果-西瓜';

  var list = str.split('-');

  print(list);

  print(list is List);
}

Set集合

1.用它最主要的功能就是去除数组重复内容
2.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());
}

Maps集合

映射(Maps)是无序的键值对:

常用属性
keys 获取所有的key值
values 获取所有的value值
sEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
remove(key) 删除指定key的数据
addAll({...}) 合并映射 给映射内增加属性
containsValue 查看映射内的值 返回true/false
forEach
map
where
any
every

示例代码:

void main() {
  Map person = {"name": "张三", "age": 20};
  var m = new Map();
  m["name"] = "李四";
  print(person);
  print(m);

//常用属性:
  Map person = {"name": "张三", "age": 20, "sex": "男"};
  print(person.keys.toList());
  print(person.values.toList());
  print(person.isEmpty);
  print(person.isNotEmpty);
//常用方法:
  Map person = {"name": "张三", "age": 20, "sex": "男"};
  person.addAll({
    "work": ['敲代码', '送外卖'],
    "height": 160
  });

  print(person);

  person.remove("sex");
  print(person);

  print(person.containsValue('张三'));
}

操作符 forEach,map, where ,any, every

void main() {
  List myList = ['香蕉', '苹果', '西瓜'];

  for (var i = 0; i < myList.length; i++) {
    print(myList[i]);
  }

  for (var item in myList) {
    print(item);
  }

  myList.forEach((value) {
    print("$value");
  });

  List myList = [1, 3, 4];

  List newList = new List();

  for (var i = 0; i < myList.length; i++) {
    newList.add(myList[i] * 2);
  }
  print(newList);

  List myList = [1, 3, 4];
  var newList = myList.map((value) {
    return value * 2;
  });
  print(newList.toList());

  List myList = [1, 3, 4, 5, 7, 8, 9];

  var newList = myList.where((value) {
    return value > 5;
  });
  print(newList.toList());

  List myList = [1, 3, 4, 5, 7, 8, 9];

  var f = myList.any((value) {
    //只要集合里面有满足条件的就返回true

    return value > 5;
  });
  print(f);

  List myList = [1, 3, 4, 5, 7, 8, 9];

  var f = myList.every((value) {
    //每一个都满足条件返回true  否则返回false

    return value > 5;
  });
  print(f);

  // 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");
  });
}

需求:使用forEach打印下面List里面的数据*/

  List list=['苹果','香蕉','西瓜'];
  list.forEach((value){
    print(value);
  });
  list.forEach((value)=>print(value));

  //注意和方法的区别: 箭头函数内只能写一条语句,并且语句后面没有分号(;)
  list.forEach((value)=>{
    print(value)
  });

需求:修改下面List里面的数据,让数组中大于2的值乘以2*/

  List list=[4,1,2,3,4];
  var newList=list.map((value){
      if(value>2){
        return value*2;
      }
      return value;

  });
  print(newList.toList());
//另外一种写法
   var newList=list.map((value)=>value>2?value*2:value);
   print(newList.toList());
上一篇下一篇

猜你喜欢

热点阅读