List、Set、Map及遍历方法(Dart语言)

List、Set、Map(Dart语言)

List

使用List关键字[ ]定义一个简单的List:

List list = ['A','B','C'];

List中常用的属性:

  • length:返回当前List的长度。
  • isEmpty:判断是否为空,返回bool类型的值。
  • isNotEmpty:判断是否为不空,返回bool类型的值。
  • reversed:倒序输出List中的值。输出结果并不是一个List,需要使用toList()方法将其在转换成List。
    List list = ['A','B','C'];
    
    print(list.reversed); //输出结果:(A,B,C)
    
    var newList = list.reversed.toList();
    print(newList); //输出结果:[A,B,C]

     

  • first:返回第一个值。

  • last:返回最后一个值。

List中常用的方法:

  • add(VALUE):向List中添加单个数据。
  • addAll([ARRAY]):以数组的形式向List中添加多个数据。
  • indexOf(ELEMENT):查找ELEMENT是否在List中。如果存在,返回其索引值;如果是不存在,返回 -1。
  • remove(ELEMENT):删除ELEMENT
  • removeAt(INDEX):删除索引值为INDEX的值。
  • fillRange(START,END,[<EVALUE]):将[START,END)范围内的值改为[<E>VALUE]的值。
  • insert(INDEX,VALUE):在INDEX处插入VALUE
  • insert(INDEX,LIST):在INDEX处插入LIST
  • join(SYMBOL):以SYMBOLLIST隔开,并以String类型返回。
  • STRING.split(SYMBOL):将字符串以SYMBOL进行切割,并以List类型返回

Set

Set最主要的功能就是去除数组中的重复内容。Set没有顺序,所以不能通过索引来获取值。

创建一个简单的Set:

var s = new Set();

s.add('芒果');
s.add('芒果');

print(s); //输出结果:{芒果}

可以根据Set不可重复的特性对List进行去重操作:

List list = ['A','B','C','D','A','B','C','D'];//定义一个重复的List

var t_set = new Set();

t_set.addAll(list);

print(t_set); //输出结果:{A,B,C,D}

print(t_set.toList()); //输出结果:[A,B,C,D]

 

Map

定义一个简单的map类型:

//定义方法 1
var person = {"name":"A","年龄":"20"};

//定义方法 2
var map = new Map();
map["name"] = "B";

Map中常用的属性

  • MAP.keys.toList():将MAP中所有的Key以List的方式返回。
  • MAP.values.toList():将MAP中所有的Value以List的方式返回。

 

遍历方法

for循环

for...in...:

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

forEach:

List list = ['A','B','C'];

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

其中,forEach()方法中其实传入的是一个省略方法名的方法体。例如下面的run函数:

run(){

}

run函数省略方法名则变为:

(){

}

传入forEach则得到:

forEach((){

})

还有一种书写格式需要注意,如果代码块内只有一行带代码,可以使用 =>来代替return

//两种书写方式效果相同

List.forEach((value)=>print(Value));

List.forEach((value){
    print(value);
});

where:是一种类似与数据库中的判断语句,选择输出符合条件的值:

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

var newList = list.where((value){//输出list中大于5的值。
    return value > 5;
});

any:类似与where的判断语句。只要有一个满足某一条件,就返回true,否则返回false。

List list = [1,2,5,8,7,6,5];

var isRight = list.any((value){//判断list中是否存在大于10的数字
    return value>10; //输出结果:false
});

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值