Las colecciones son objetos de tipo estructuras de datos que almacenan diversos elementos, existen 2 tipos de colecciones, las listas y los sets.
En Dart los arreglos son Objetos ordenados de tipo List los cuales almacenan con un índice a cada uno de los elementos, mientras que los sets son colecciones que contiene valores únicos (no se pueden repetir) no ordenados (no se pueden recuperar mediante índices).
Una lista permitirá agregar los elementos que se desees, mientras que un set no permitirá volver a agregar un valor ya existente, pero tampoco mandará un error.
List
-Una de las colecciones más comunes en casi todos los lenguajes es el Array, en Dart los arreglos son objetos tipo List
-Trabaja con index 0
-Tiene muchas funciones por defecto
Declaración:
List list; //forma 1 List list<tipo>; //forma 2
Inicialización:
list = ["negro","blanco"];
Agregar elemento:
list.add("Rosa");
Borrar elemento:
list.removeAt(indice);
Borrar último elemento:
list.removeLast();
Añadir elementos de otra lista:
list.addAll(lista_auxiliar);
Set
-En este tipo de colección un elemento puede existir una sola vez. Si intentamos enviar uno repetido no lo permitirá (pero tampoco mandará un error)
-Esta no regresará en el mismo orden y por este mismo motivo no se puede pedir por index
Declaración:
Set set;
Inicialización:
set = set.from(['Argel', 'Juan']);
Agregar elemento:
set.add("Erika");
Eliminar elemento:
set.remove("Argel");
gracias
¡Gracias!
💻 También podemos combinar las listas y los sets según la necesidad que tengamos. En este caso eliminar elementos repetidos de una lista.
a pesar de entender los ejemplos dados en las clases y entender que se puede usar un editor del lenguaje en linea para trabajar en los temas del curso, siento que hace falta una explicación como en otros cursos del proceso de instalación del entorno de desarrollo y un paso a paso de como crear el primero proyecto.
Concuerdo. Sé que es bueno que uno busque por su cuenta y se sepa defender (como en el mundo real) pero también es verdad que se está pagando harto por un curso en el que se enseñen aspectos tan importantes como la instalación del entorno de desarrollo. Al fin y al cabo eso ahorra mucho tiempo :)
El instructor mencione un editor online al inicio. Personalmente estoy usando ese.
https://dartpad.dev/
Para los que tienen problemas de como empezar y qué editor utilizar, a continuación les explico cómo lo estoy corriendo en Windows:
-Instalé el editor de códico Visual Studio Code.
-Instalé el SDK de Dart, a través de este instalador: https://gekorm.com/dart-windows/
-En Visual Studio Code, instalé la extensión de Dart para el intelliSense durante la escritura del código (El autocompletado).
-Creé una carpeta para el desarrollo del curso, luego dentro de alla creo los archivos en los que escribiré el código de cada clase, estos deben tener la extensión .dart, por ejemplo: clase1.dart (este es el nombre del archivo)
-Abrí una consola en la dirección donde tengo los archivos, y para correr cada archivo, escribo el siguiente comando en la consola: "dart clase1.dart" cabe recalcar que clase1,dart deben cambiarlo por el nombre de su archivo en caso de que tengan otro.
Aquí está el código comentado de la clase:
//Clase sobre coleccionesmain(List<String> args){// * List// * Una de las colecciones más comunes en casi todos los lenguajes es el Array,// * en Dart los arreglos son objetos tipo List.// * Trabaja con index 0 y tiene muchas funciones por defecto.// List estoEsUnaLista; Forma simple de declarar una lista.List<String> estoEsUnaLista;// * Se puede declarar una lista de String de esta manera.print(estoEsUnaLista);// ! Se prueba que es un objeto, por eso sin inicializarse, su valor es null. estoEsUnaLista =[];// ! Los corchetes sin contenido, simbolizan que ya se inicializó la lista, pero sin embargo no tiene ningún valor asignado.print(estoEsUnaLista);// ? Ya no es nulo. estoEsUnaLista =['Amarillo','Azul'];print(estoEsUnaLista);// ? Ahora imprime su contenido. estoEsUnaLista.add("Rojo");// ! Este es un método para agregar contenido nuevo a la lista sin sobreescribirla.// ? Se remarca también que se pueden usar comillas simples '' o comillas dobles ""print(estoEsUnaLista);// * Tiene nuevo contenido. estoEsUnaLista.removeLast();// ! Con este método, se elimina el último valor en la listaprint(estoEsUnaLista);// ? Ya no está en la lista "Rojo".List<String> otraLista =['Negro','Blanco'];// * Se pueden inicializar las listas al ser declaradas.print(otraLista);// * Contiene sus valores de inicialización estoEsUnaLista.addAll(otraLista);// ! De esta forma, estamos agregándole a la primera Lista, los valores de la segunda Lista.print(estoEsUnaLista);// ? Se puede ver los nuevos valores de la primera lista. estoEsUnaLista.removeAt(1);// ! Este es un método para eliminar objetos de una lista en un punto específico, para determinar cúal queremos borrar, usamos su index.print(estoEsUnaLista);// ? Se borró el color en el index 1 (segunda posición, debido a que la primera posición es el index 0).// * Set// * En este tipo de colección un elemento solo puede existir una vez.// * Esta no regresará en el mismo orden y por este motivo no se puede pedir por index.Set estoEsUnSet;// * Así se puede declarar un setprint(estoEsUnSet);// ! Prueba de nuevo, que sin inicialización, su valor es nulo. estoEsUnSet =Set.from(['Carlos','Diego','Emmanuel','Johan']);// ! Inicializamos un Set, agregándole datos de una Lista.print(estoEsUnSet);// ? Se muestra el contenido del Set. estoEsUnSet.add('Paco');// * Agregamos contenido igual que en una Lista, comparten este método.print(estoEsUnSet);// ? Ahora Paco forma parte del Set. estoEsUnSet.remove('Diego');// ! Esta es la forma de eliminar contenido de un Set, podemos hacerlo específicando exctamente que queremos que se elimine de él.print(estoEsUnSet);// ? Diego ya no está más en el Set.}
main(List<String> args){List<String> list; list =['Negro','Rojo'];//Agrega elementos a la lista list.add('Rosa');print(list);//Remueve el ultimo elemento list.removeLast();print(list);List<String> listAux =['Azul','Verde','Amarillo'];print(listAux);//Agrega una lista a otra lista list.addAll(listAux);print(list);//Elimina con index list.removeAt(2);print(list);//No tiene orden setSet set; set =Set.from(['Pepe','Roberto','Pedro','Juan']);print(set); set.add('Erika');print(set);//Se tiene que eliminar siempre por el nombre no con numero set.remove('Roberto');print(set);}
Que opinan de usar dart como mi primer lenguaje para aprender a programar?
Sería espectacular, pero este curso es de un nivel medianamente avanzado, no explica todos los conceptos de programación a detalle y de la manera más entendible. Te recomiendo visitar la carrera de Fundamentos de Programación, y empezar por el Curso de Programación Básica (en el que verás algo de Javascript) para empezar a entender este maravilloso mundo, un saludo :D
Un consejo es que tomes la carrera de Fundamentos de Programación y hagas los ejercicios con Dart.
¿Cual seria la ventaja para usar uno u otra ? :/
Con los Sets tienes la ventaja de no tener valores duplicados en tu colección, los List es un arreglo donde puedes tener cualquier elemento, hasta puede tener valores duplicados.
Si en los Set te saltas el trabajo de saber si un elemento esta duplicado.
¿Se puede eliminar un elemento de un List con el nombre del valor y no con el index?
Por supuesto, ejemplo:
List list =['rojo','blanco'];print(list);// ['rojo','blanco']list.remove('rojo');print(list);// ['blanco']
lo intente
y no me dejó
Soy yo o a alguien más le parece muy nervioso el docente ?
Si creo que le falta ser un poco más didáctico
Dejo mi aporte, muy bueno!
main(List<String> arguments){//Armado de list por colorList<String> list; list =['Negro','Rojo'];//Agregar en list el color Rosa list.add('Rosa');print(list);//Remover el ultimo valor agregado en list list.removeLast();print(list);//Agregar en list mediante otra lista, este caso Aux con los colores " Azul y verde "List<String> listAux=['Azul','Verde']; list.addAll(listAux);print(list);//Mediante list podemos remover el valor que queramos numerando la ubicacion de ese valor ejemplo "2=Azul" list.removeAt(2);print(list);//Armado de set por nombreSet set;print(set);//Agregar valores a Set con nombres set =Set.from(['Santiago','Juan','Pedro']);print(set);//Se agrega a Set el nombre de Erika set.add('Erika');print(set);//Se elimina de Set el nombre Santiago. set.remove('Santiago');print(set);
Como puedo acceder a un valor declarado en el Set?
voidmain(){Set set; set=Set.from(['Pedro','Gaby','Rocio','Paul']);print(set); set.add('Juan'); int longitud=set.length;print('$set, la longitud del set es: $longitud');print(set.elementAt(0)); set.remove('Paul'); longitud=set.length;print('$set, la longitud del set es: $longitud');}Result:{Pedro,Gaby,Rocio,Paul}{Pedro,Gaby,Rocio,Paul,Juan}, la longitud del setes:5Pedro{Pedro,Gaby,Rocio,Juan}, la longitud del setes:4
Set
Una colección de objetos en los que cada objeto puede aparecer solo una vez. Es decir, para cada objeto del tipo de elemento, se considera que el objeto está en el conjunto o no.
Por lo general, no está permitido modificar el conjunto (agregar o eliminar elementos) mientras se realiza una operación en el conjunto, por ejemplo, durante una llamada a forEach o containsAll. Tampoco está permitido modificar el conjunto mientras itera el conjunto en sí o cualquier Iterable respaldado por el conjunto, como los que devuelven métodos como where y map.
Fuente
¿Por qué estando en un curso de Dart aparece en la sección de Archivos y enlaces links sobre Kotiln?.
lo mismo me pregunté
Puede ser un pequeño error, pero tambien puedes aprender ambos lenguajes, ya que cada uno cuenta con sus propias ventajas.
Saludos!
en serio que sin conocimientos previos , aqui este docente no te hace entender nada...
Recien lo estoy viendo y si, creo q va muy rápido, te recomiendo ir a "curso de programacion estructurada" es mas basico y podrás comprender mejor.
me senti así.
retrocedi y empece programacion basica y regrese con dart, ya se comprende mejor
el set en su estructura se parece como un objeto json con esas llaves { }
Arreglen el audio por favor, no debería ser muy complicado. Porque así como está es muy difícil escuchar claramente lo que dice el maestro. Además de que parece grabado con un celular :c, lo demás me parece bien :)