美文网首页
Dart基础(二),List、set、map

Dart基础(二),List、set、map

作者: 徘徊0_ | 来源:发表于2020-03-18 17:12 被阅读0次
一、List

List 常用方法如下,一般都可以通过名字来判断其含义,比如 add、remove.....


image.png

下面记录一下不常用的方法:

  • fillRange List范围修改方法,如下
List<String> stringList=List<String>();
stringList.add('s1');
stringList.add('s2');
stringList.add('s3');
stringList.add('s4');
print('修改前: $stringList');

stringList.fillRange(0, 2,'a1');//代表将第 0、1 位数据修改为‘a1’

print('修改后: $stringList');
image.png
  • join 将List以"xx"分割开并转化为String,如下
List<String> stringList=List<String>();
  stringList.add('s1');
  stringList.add('s2');
  stringList.add('s3');
  stringList.add('s4');
  var str=stringList.join(',');//join ,将List以","分割开

  print(str);
join.png
  • split 切割字符串
var arr='s1-s2-s3';
//将字符串,通过‘-’ 切割为List
List<String> arrList=arr.split('-');

print(arrList);
二、Set

Set: 无序,且 不重复 的集合(不能通过索引来取值,主要功能去除数组中重复内容)

1,不重复 特性
  • set 添加重复数据


    set不重复.png
  • 使用set去除重复数据

List sList = List();
  sList..add('s1')
    ..add('s2')
    ..add('s1')
    ..add('s3');
  print('List 数据为:$sList');
  //使用Set去除重复数据
  Set set=new Set();
  set.addAll(sList);//将List中数据添加到set中来
  print('set数据为: $set');

  sList=set.toList(); //将set转换为List
  print('经过Set去重后List 数据为:$sList');
image.png
三、Map

1,创建map有两种方式:

//创建map方式1
var m1={
  'm1-1':1,
  'm1-2':2
};

print('m1 = $m1');

//创建map方式2
var m2=new Map();
m2['m2-1']=1;
m2['m2-2']=3;
print('m2 = $m2');

2,map 常用方法、属性

print('获取所有的key值:${m2.keys}');
print('获取所有的value值:${m2.values}');
print('Map不为空:${m2.isNotEmpty}');
print('Map为空:${m2.isEmpty}');
.....

//添加数据,使用 addAll
m2.addAll({
 'name':'zhangsan',
 'age':11
});
四、List、Set、Map 常见方法
1,遍历
  • for循环、for in 方式
  • foreach方法
//1,使用for循环遍历List
  List<String> stringList = List<String>();
  stringList.add('s1');
  stringList.add('s2');
  for (int i = 0; i < stringList.length; i++) {
    print('i = $i , 值为: ${stringList[i]}');
  }

  //2,for in 遍历
  for(var s in stringList) {
    print('for in 遍历List: $s');
  }

  //3,foreach
  stringList.forEach((s){
    print('foreach遍历List: $s');
  });
image.png

set 也可以使用 in foreach 方法遍历,如下:

//set 遍历方法
  Set set = new Set();
  set..add('set1')..add('set2')..add('set3');
  for (var s in set) {
    print('Set 使用 in 遍历$s');
  }
  print('--------------------------');

  set.forEach((s) {
    print('Set 使用 forEach 遍历$s');
  });
  print('--------------------------');
  //只有一行,可以使用箭头函数代替
  set.forEach((value)=>print('Set 使用 forEach 遍历$value'));
image.png

Map集合 也可以使用 foreach 方法遍历,如下:

Map map=new Map();
map['name']='zhangsan';
map['name2']='zhangsan2';
map.forEach((key,value){
  print('key = $key , value = $value');
});
image.png
2,map 方法: 用于修改原集合数据

例如:

List<String> stringList = List<String>();
  stringList.add('old1');
  stringList.add('old2');
  print(stringList);
  //使用 List.map 方法,修改集合中的数据
  var newList=stringList.map((value){
    //在原集合基础上,每一个value 都加 "aa";
    return value+' aa';
  });

  print('map方法调用后:$newList');
image.png
3,where :根据条件,生成新的集合

例如:筛选出大约3的数据,生成一个新的集合

 List intList=[1,2,3,4,5,6,7];
  //where 根据条件,生成新的集合
  var newIntList=intList.where((value){
    return value>3;
  });
  print(newIntList);//输出 (4, 5, 6, 7)
4,any :有一个满足条件就返回 true
  List intList = [1, 2, 3, 4, 5, 6, 7];
//any :有一个满足条件就返回 true
  var any = intList.any((value) {
    return value > 1;//如果满足一个大于 1 的value,就返回true
  });
  print(any);// true
5, every : 每一个值都满足该条件,则返回true
  List intList = [1, 2, 3, 4, 5, 6, 7];
 //every : 每一个值都满足该条件,则返回true
  var every = intList.every((value) {
    return value > 1;
  });
  print(every);// false 

注:set、List、Map 都包含上述方法,用法基本一致

相关文章

网友评论

      本文标题:Dart基础(二),List、set、map

      本文链接:https://www.haomeiwen.com/subject/eifcyhtx.html