dart Map

上一篇讲了List 存储对象的方式,在Java中有很多种集合 比如List  Map.  这是二大类,那么在dart语言中也有

Maps
In general, a map is an object that associates keys and values. Both keys and values can be any type of object. Each key occurs only once, but you can use the same value multiple times. Dart support for maps is provided by map literals and the Map type

翻译:

通常,map是一个关联键和值的对象。键和值都可以是任何类型的对象。每个键只出现一次,但是可以多次使用相同的值。Dart对映射的支持由映射文字和映射类型提供

 

例子:

var gifts = {
  // Key:    Value
  'first': 'partridge',
  'second': 'turtledoves',
  'fifth': 'golden rings'
};

var nobleGases = {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

这个和JavaScript中的定义对象的很像,

上面是一种创建Map集合的方式

void main(){
  var gifts = Map();
  gifts['first'] = 'partridge';
  gifts['second'] = 'turtledoves';
  gifts['fifth'] = 'golden rings';
  print(gifts);
}

这个是省略了new 操作符的写法。加上也一样

修改其他的值和list方式一样 比如:

void main(){
  var gifts = new Map();
  gifts['first'] = '1';
  gifts['second'] = '2';
  gifts['fifth'] = '3';
  print(gifts);
  gifts['fifth'] = '4';
  print(gifts);
}

如果想让Map集合的key-vaule值是规定的数据类型

void main() {
  var gifts = new Map<String, int>();
  gifts['first'] = 1;
  gifts['second'] = 2;
  gifts['fifth'] = 3;
  print(gifts);
}

如果想在map中添加一个key-vaule

void main() {
  var gifts = {'first': 'partridge'};
  gifts['fourth'] = 'calling birds'; // Add a key-value pair
  print(gifts);
}

默认是添加在末尾

如果有需求是定义一个常量的也和List一样

void main() {
  final constantMap = const {
    2: 'helium',
    10: 'neon',
    18: 'argon',
  };
}

这样的话 它对应的key的值就不能修改了

如果查找在Map中不存的就会返回null

void main() {
  var gifts = {'first': 'partridge'};
  print( gifts['fifth']);
}

获取Map中所有的key和value

void main() {
  var hawaiianBeaches = {
    'Oahu': ['Waikiki', 'Kailua', 'Waimanalo'],
    'Big Island': ['Wailea Bay', 'Pololu Beach'],
    'Kauai': ['Hanalei', 'Poipu']
  };
  var keys = hawaiianBeaches.keys;
  print(keys);
  var values = hawaiianBeaches.values;
  print(values);
}

Map的遍历方式

void main() {
  var hawaiianBeaches = {
    'Oahu': ['Waikiki', 'Kailua', 'Waimanalo'],
    'Big Island': ['Wailea Bay', 'Pololu Beach'],
    'Kauai': ['Hanalei', 'Poipu']
  };
  hawaiianBeaches.forEach((k, v) {
    print('k=$k and v= $v');
  });
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值