Dart基础-集合类型

本文介绍了Dart编程中的三种基本集合类型:List、Set和Map,详细讲解了它们的定义方式。List是有序且可能包含重复元素的集合,Set是无序且不允许重复元素的集合,而Map是键值对的集合。此外,还概述了集合的常见操作,如长度属性、添加/删除/包含操作,以及Map的键值操作。

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

Dart基础-集合类型

1. 集合类型的定义

对于集合类型,Dart则内置了最常用的三种:List / Set / Map

其中,List可以这样来定义:

// List定义// 1.使用类型推断定义
var letters = ['a', 'b', 'c', 'd'];
print('$letters ${letters.runtimeType}');
// 2.明确指定类型
List<int> numbers = [1, 2, 3, 4];print('$numbers ${numbers.runtimeType}');

其中,set可以这样来定义:

  • 其实,也就是把[]换成{}就好了。
  • SetList最大的两个不同就是:Set是无序的,并且元素是不重复的。
// Set的定义
// 1.使用类型推导定义
var lettersSet = {'a', 'b', 'c', 'd'};
print('$lettersSet ${lettersSet.runtimeType}');
// 2.明确指定类型
Set<int> numbersSet = {1, 2, 3, 4};
print('$numbersSet ${numbersSet.runtimeType}');

最后,Map是我们常说的字典类型,它的定义是这样的:

// Map的定义
// 1.使用类型推导定义
var infoMap1 = {'name': 'why', 'age': 18};
print('$infoMap1 ${infoMap1.runtimeType}');

// 2.明确指定类型
Map<String, Object> infoMap2 = {'height': 1.88, 'address': '北京市'};
print('$infoMap2 ${infoMap2.runtimeType}');
2. 集合的常见操作

了解了这三个集合的定义方式之后,我们来看一些最基础的公共操作

第一类,是所有集合都支持的获取长度的属性length

// 获取集合的长度
print(letters.length);
print(lettersSet.length);
print(infoMap1.length);

第二类, 是添加/删除/包含操作

  • 并且,对List来说,由于元素是有序的,它还提供了一个删除指定索引位置上元素的方法
// 添加/删除/包含元素
numbers.add(5);
numbersSet.add(5);
print('$numbers $numbersSet');

numbers.remove(1);
numbersSet.remove(1);
print('$numbers $numbersSet');

print(numbers.contains(2));
print(numbersSet.contains(2));

// List根据index删除元素
numbers.removeAt(3);
print('$numbers');

第三类,是Map的操作

  • 由于它有key和value,因此无论是读取值,还是操作,都要明确是基于key的,还是基于value的,或者是基于key/value对的。
// Map的操作
// 1.根据key获取
valueprint(infoMap1['name']);

// 2.获取所有的entries
print('${infoMap1.entries} ${infoMap1.entries.runtimeType}');

// 3.获取所有的keys
print('${infoMap1.keys} ${infoMap1.keys.runtimeType}'); 

// 4.获取所有的values
print('${infoMap1.values} ${infoMap1.values.runtimeType}'); 

// 5.判断是否包含某个key或者value
print('${infoMap1.containsKey('age')} ${infoMap1.containsValue(18)}'); // true true


// 6.根据key删除元素
infoMap1.remove('age');print('${infoMap1}'); 

参考:

Coderwhy老师的公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值