k4zek4ge
10/29/2019 - 10:09 AM

List

 var myList= [1,2,3,4,5];
 print(myList.sublist(1,3)); // [2,3]
 print(myList.sublist(1)); // [2,3,4,5]
 
 myList.shuffle();
 print('$myList'); // [5,4,3,1,2]
 
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]

List<String> sports = ['cricket', 'football', 'tennis', 'baseball'];
Map<int, String> map = sports.asMap();
print(map); // {0: cricket, 1: football, 2: tennis, 3: baseball}
 
var mixList = [1, "a", 2, "b", 3, "c", 4, "d"];
var num = mixList.whereType<int>();
print(num); // (1, 2, 3, 4)

var strlist =  mixList.whereType<String>();
print(strlist); // ("a", "b", "c", "d")

var myList = [1, 2, 3, 4, 5];
print(myList.getRange(1,4)); // (2, 3, 4)

var rList= [0,1,2,3,4,5,6];
rList.replaceRange(2,3, [10]);
print('$rList'); // [0, 1, 10, 3, 4, 5, 6]

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

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

var lst = [1,2,3,4,5];
var res = lst.fold(5, (i, j) => i + j);
print('res is ${res}'); // res is 20 (5+1, 6+2, 8+3, 11+4, 15+5)

//reduce() 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

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

//method any()returns a boolean depending upon whether any element satisfies the condition or not.
print(sportsList.any((e) => e.contains('cricket'))); // true

//method every() returns a boolean depending upon whether all elements satisfies the condition or not.
print(sportsList.every((e) => e.startsWith('a'))); // false

//method take() returns iterable starting from index 0 till the count provided from given list.
print(sportsList.take(2));  // (cricket, tennis)

//method skip() ignores the elements starting from index 0 till count and returns remaining iterable from given list.
print(sportsList.skip(2));  // (football)

add: adds new element in given list.
length: returns total number of elements in given list.
isEmpty: returns boolean if given list is empty or not.
isNotEmpty: checks and returns boolean if given list has elements.
first: returns first element from given list.
last: returns last element from given list.
clear: clears the given list.