sublist():

This method returns a new list containing elements from index between start and end . Note that end element is exclusive while start is inclusive.

var myList= [1,2,3,4,5];

print(myList.sublist(1,3)); // [2,3]

If end parameter is not provided, it returns all elements starting from start till length of the list.

print(myList.sublist(1)); // [2,3,4,5]

shuffle():

This method re-arranges order of the elements in the given list randomly.

myList.shuffle();

print('$myList'); // [5,4,3,1,2]

reversed:

reversed is a getter which reverses iteration of the list depending upon given list order.

var descList= [6,5,4,3,2,1];

print(descList.reversed.toList()); // [1,2,3,4,5,6]



var ascList = [1,2,3,4,5,6];

print(ascList.reversed.toList()); // [6,5,4,3,2,1]

asMap():

This method returns a map representation of the given list. The key would be the indices and value would be the corresponding elements of the list.

List<String> sports = ['cricket', 'football', 'tennis', 'baseball'];

Map<int, String> map = sports.asMap();

print(map); // {0: cricket, 1: football, 2: tennis, 3: baseball}

whereType():

This method returns iterable with all elements of specific data type.

Let’s say we have a list with mix data such as String and int and we just want to retrieve int data from it, then we would use whereType method as:

var mixList = [1, "a", 2, "b", 3, "c", 4, "d"];

var num = mixList.whereType<int>();

print(num); // (1, 2, 3, 4)

Similarly, we can retrieve only String data by specifying mixList.whereType<String>();

getRange():

This method returns elements from specified range [start] to [end] in same order as in the given list. Note that, start element is inclusive but end element is exclusive.

var myList = [1, 2, 3, 4, 5];

print(myList.getRange(1,4)); // (2, 3, 4)

replaceRange():

This method helps to replace / update some elements of the given list with the new ones. The start and end range need to be provided alongwith the value to be updated in that range.

var rList= [0,1,2,3,4,5,6];

rList.replaceRange(2,3, [10]);

print('$rList'); // [0, 1, 10, 3, 4, 5, 6]

firstWhere():

This method returns the first element from the list when the given condition is satisfied.

var firstList = [1,2,3,4,5,6];

print(firstList.firstWhere((i) => i < 4)); // 1



var sList = ['one', 'two', 'three', 'four'];

print(sList.firstWhere((i) => i.length > 3)); // three

Similarly, lastWhere() returns last element from the list when given condition is met. where() returns new list that matches the condition.

singleWhere():

This method returns the first matching element from the list when there’s an exact match.

var mList = [1, 2, 3, 4];

print(mList.singleWhere((i) => i == 3)); // 3

If the given list contains a duplicate, then singleWhere method retuns an exception. In that case, we can use firstWhere method which returns the first matching element irrespective of repeating / duplicates in the list.

var sList = [1, 2, 3, 3, 4];

print(sList.singleWhere((i) => i == 3)); // Bad state: Too many elements



print(sList.firstWhere((i) => i == 3)); // 3

fold():

This method returns a single value by iterating all elements of given list along with an initialValue , ie, if we want sum of all elements or product of all elements, then, fold helps us to do that.

var lst = [1,2,3,4,5];

var res = lst.fold(5, (i, j) => i + j);

print('res is ${res}'); // res is 20

In above example, 5 is the initialValue and then fold starts the iteration from index 0, adds element to the initialValue (5 + 1) and moves ahead till index 4 like (6+2, 8+3, 11+4, 15+5) . Hence, the single value, ie sum of all elements + intialValue is returned as 20.

reduce():

This method is very similar to fold and returns a single value by iterating all elements of given list. Only difference is, this method doesn’t take any initialValue and the given list should be non-empty.

var lst = [1,2,3,4,5];

var res = lst.reduce((i, j) => i + j);

print('res is ${res}'); // res is 15

followedBy():

This method appends new iterables to the given list.

var sportsList = ['cricket', 'tennis', 'football'];

print(sportsList.followedBy(['golf', 'chess']).toList()); // [cricket, tennis, football, golf, chess]

any():

This method returns a boolean depending upon whether any element satisfies the condition or not.

print(sportsList.any((e) => e.contains('cricket'))); // true

every():

This method returns a boolean depending upon whether all elements satisfies the condition or not.

print(sportsList.every((e) => e.startsWith('a'))); // false

take():

This method returns iterable starting from index 0 till the count provided from given list.

print(sportsList.take(2)); // (cricket, tennis)

skip():

This method ignores the elements starting from index 0 till count and returns remaining iterable from given list.