Fundamentos do Dart - Tipos de coleção

Fundamentos do Dart - Tipos de coleção

1. Definição do tipo de coleção

Para tipos de coleção, o Dart tem os três integrados mais usados: List / Set / Map.

Entre eles, Listpode ser definido da seguinte forma:

// 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 eles, setpode ser definido da seguinte forma:

  • Na verdade, é apenas uma questão de []substituí-lo {}.
  • SetAs duas Listmaiores diferenças são: Seté desordenado e os elementos não são repetidos.
// Set的定义
// 1.使用类型推导定义
var lettersSet = {
    
    'a', 'b', 'c', 'd'};
print('$lettersSet ${
      
      lettersSet.runtimeType}');
// 2.明确指定类型
Set<int> numbersSet = {
    
    1, 2, 3, 4};
print('$numbersSet ${
      
      numbersSet.runtimeType}');

Por fim, Mapexiste o tipo de dicionário que costumamos dizer, e sua definição é a seguinte:

// 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. Operações comuns em coleções

Depois de entender como essas três coleções são definidas, vamos ver algumas das operações públicas mais básicas

A primeira categoria é a propriedade de obter comprimento suportado por todas as coleções length:

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

A segunda categoria é adicionar/remover/incluir operações

  • E, Listcomo os elementos são ordenados, também fornece um método para excluir o elemento na posição 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');

A terceira categoria, sim Mapoperação

  • Como tem uma chave e um valor, seja lendo um valor ou operando, deve ser claramente baseado na chave, ou no valor, ou no par chave/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}'); 

referência:

Conta oficial do Teacher Coderwhy

Acho que você gosta

Origin blog.csdn.net/MrLizuo/article/details/127669059
Recomendado
Clasificación