How to deep Copy a List in Dart


How to deep Copy a List in Dart ?

Answer

To deep copy a list in Dart, you can use the `map` method to iterate through the list and create a new list with cloned elements.



✐ Examples

1 Deep Copy a List of Integers

In this example,

  1. We create a list named originalList with integer values.
  2. We use the map method of originalList to iterate through each element and create a new list with the same elements.
  3. The toList method converts the iterable result of map back to a list.
  4. Finally, we print both lists to verify the deep copy.

Dart Program

void main() {
    List<int> originalList = [1, 2, 3, 4, 5];
    List<int> deepCopiedList = originalList.map((element) => element).toList();
    print('Original List: \$originalList');
    print('Deep Copied List: \$deepCopiedList');
}

Output

Original List: [1, 2, 3, 4, 5]
Deep Copied List: [1, 2, 3, 4, 5]

2 Deep Copy a List of Custom Objects

In this example,

  1. We define a class named Person with properties name and age.
  2. We create a list named originalList containing Person objects.
  3. We use the map method to iterate through each Person object and create a new Person object with the same properties.
  4. The toList method converts the iterable result of map back to a list.
  5. Finally, we print both lists to verify the deep copy.

Dart Program

class Person {
    String name;
    int age;
    Person(this.name, this.age);
    Person clone() => Person(this.name, this.age);
    @override
    String toString() => 'Person(name: \$name, age: \$age)';
}

void main() {
    List<Person> originalList = [
        Person('Alice', 30),
        Person('Bob', 25),
        Person('Charlie', 35)
    ];
    List<Person> deepCopiedList = originalList.map((person) => person.clone()).toList();
    print('Original List: \$originalList');
    print('Deep Copied List: \$deepCopiedList');
}

Output

Original List: [Person(name: Alice, age: 30), Person(name: Bob, age: 25), Person(name: Charlie, age: 35)]
Deep Copied List: [Person(name: Alice, age: 30), Person(name: Bob, age: 25), Person(name: Charlie, age: 35)]

Summary

In this tutorial, we learned How to deep Copy a List in Dart language with well detailed examples.




More Dart Lists Tutorials

  1. How to create an Empty List in Dart ?
  2. How to Initialize a List in Dart ?
  3. How to Get Length of a List in Dart ?
  4. How to create a List of size N in Dart ?
  5. How to create a List of Numbers from 1 to N in Dart ?
  6. How to create a List of Strings in Dart ?
  7. How to create a List of Empty Lists in Dart ?
  8. How to Access Elements in a List in Dart ?
  9. How to get Element in a List at a Specific Index in Dart ?
  10. How to get First Element in a List in Dart ?
  11. How to get Last Element in a List in Dart ?
  12. How to Iterate Over a List in Dart ?
  13. How to Iterate Over a List with Index in Dart ?
  14. How to Iterate Over a List in Reverse Order in Dart ?
  15. How to check if a List is Empty in Dart ?
  16. How to check if a List is Not Empty in Dart ?
  17. How to get Sub List in Dart ?
  18. How to get the Index of Specified Element in a List in Dart ?
  19. How to check if a Specific Element is present in the List in Dart ?
  20. How to check if a List contains all the elements of Another List in Dart ?
  21. How to count the Number of Occurrences of Specific Element in the List in Dart ?
  22. How to find the Element with Maximum Number of Occurrences in a List in Dart ?
  23. How to find the Element with Minimum Number of Occurrences in a List in Dart ?
  24. How to Sort a List in Dart ?
  25. How to Sort a List in Ascending Order in Dart ?
  26. How to Sort a List in Descending Order in Dart ?
  27. How to create a Two Dimensional List in Dart ?
  28. How to Iterate over a Two Dimensional List in Dart ?
  29. How to create a Three Dimensional List in Dart ?
  30. How to Copy a List in Dart ?
  31. How to deep Copy a List in Dart ?
  32. How to Split a List in Dart ?
  33. How to Join Lists in Dart ?
  34. How to Append an Element to a List in Dart ?
  35. How to Insert an Element at Specific Index in a List in Dart ?
  36. How to Append a List to another List in Dart ?
  37. How to Concatenate Two Lists in Dart ?
  38. How to check if Two Lists are Equal in Dart ?
  39. How to check if Two Lists have Same Elements (Regardless of Order) in Dart ?
  40. How to Convert a List of Integers to a List of Strings in Dart ?
  41. How to Convert a List of Strings to a List of Integers in Dart ?
  42. How to Convert a List of Floats to a List of Strings in Dart ?
  43. How to Convert a List of Strings to a List of Floats in Dart ?
  44. How to Reverse a List in Dart ?
  45. How to Shuffle a List in Dart ?
  46. How to Slice a List in Dart ?
  47. How to Slice First N Elements from a List in Dart ?
  48. How to Slice Last N Elements from a List in Dart ?
  49. How to Rotate Elements in a List in Dart ?
  50. How to Filter Elements of a List based on a Condition in Dart ?
  51. How to Remove Duplicates in a List in Dart ?
  52. How to Remove Element at a Specific Index from a List in Dart ?
  53. How to Remove Specific Element from a List in Dart ?
  54. How to Remove Element from List based on a Condition in Dart ?
  55. How to Sort a List of Strings in Dictionary Order in Dart ?
  56. How to Concatenate Strings in List in Dart ?
  57. How to create a List of Lists in Dart ?
  58. How to create a List of Dictionaries in Dart ?
  59. How to create a List of Sets in Dart ?