Conceptos básicos de dardos - Tipos de colección
1. Definición del tipo de colección
Para los tipos de colección, Dart tiene los tres integrados más utilizados: List / Set / Map
.
Entre ellos, List
se puede definir de la siguiente manera:
// List定义// 1.使用类型推断定义
var letters = ['a', 'b', 'c', 'd'];
print('$letters ${
letters.runtimeType}');
// 2.明确指定类型
List<int> numbers = [1, 2, 3, 4];print('$numbers ${
numbers.runtimeType}');
Entre ellos, set
se puede definir de la siguiente manera:
- De hecho, solo es cuestión de
[]
reemplazarlo{}
. Set
Las dosList
mayores diferencias son:Set
está desordenado y los elementos no se repiten.
// Set的定义
// 1.使用类型推导定义
var lettersSet = {
'a', 'b', 'c', 'd'};
print('$lettersSet ${
lettersSet.runtimeType}');
// 2.明确指定类型
Set<int> numbersSet = {
1, 2, 3, 4};
print('$numbersSet ${
numbersSet.runtimeType}');
Finalmente, Map
está el tipo de diccionario que solemos decir, y su definición es la siguiente:
// 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. Operaciones comunes sobre cobros
Después de comprender cómo se definen estas tres colecciones, veamos algunas de las operaciones públicas más básicas.
La primera categoría es la propiedad de obtener la longitud admitida por todas las colecciones length
:
// 获取集合的长度
print(letters.length);
print(lettersSet.length);
print(infoMap1.length);
La segunda categoría, es agregar/eliminar/incluir operaciones
- Y,
List
para que el elemento esté ordenado, también proporciona un método para eliminar el elemento en la posición de índice especificada
// 添加/删除/包含元素
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');
La tercera categoría, sí Map
operación
- Dado que tiene una clave y un valor, ya sea leyendo un valor u operando, debe basarse claramente en la clave, el valor o el par clave/valor.
// 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}');
referencia:
Cuenta oficial del profesor Coderwhy