List中常用的方法和属性
常用属性:
length 长度
reversed 翻转
isEmpty 是否为空
isNotEmpty 是否不为空
常用方法:
add 增加
addAll 拼接数组
indexOf 查找 传入具体值
remove 删除 传入具体值
removeAt 删除 传入索引值
fillRange 修改
insert(index,value); 指定位置插入
insertAll(index,list) 指定位置插入List
toList() 其他类型转换成List
join() List转换成字符串
split() 字符串转化成List
forEach
map
where
any
every
import 'package:flutter/material.dart';
void main() {
var myList = ['A','B','C','A','C'];
print(myList.length); //List的长度 3
var newList = myList.reversed;
print(newList); //list翻转 --(C, B, A)
print(newList.toList()); //翻转后转化为List --[C, B, A]
var newList2 = myList.reversed.toList();
print(newList2); //[C, B, A]
print(newList2.isEmpty); //false
print(newList2.isNotEmpty); //true
newList2.add('涨涨'); //添加一个数据,并且为String类型的
print(newList2); //[C, B, A, 涨涨]
newList2.addAll(['123','apple','pink']); //添加多条数据
print(newList2); //[C, B, A, 涨涨, 123, apple, pink]
var i = newList2.indexOf('apple'); //传入具体的值,返回对应的索引
print(i); //5
var j = newList2.indexOf('444'); //传入具体的值,返回对应的索引,如果没有,返回-1
print(j); //-1
newList2.remove('涨涨'); //list中删除 传入一个具体的值
print(newList2); //[C, B, A, 123, apple, pink]
newList2.removeAt(4); //list中删除 传入list的索引
print(newList2); //[C, B, A, 123, pink]
var remove = newList2.remove('123'); //传入的具体值,有的话为true,没有的话为false
print(remove); //true
var removeAt = newList2.removeAt(2); //传入索引,返回对应的值
print(removeAt); //A
print(newList2); //[C, B, pink]
newList2.fillRange(1, 2,'AAA'); //修改一个数据
print(newList2); //[C, AAA, pink]
newList2.insert(2, "haha"); //在指定位置插入一个元素
print(newList2); //[C, AAA, haha, pink]
newList2.insertAll(2, ['张三','李四']); //在指定的位置插入多个元素
print(newList2); //[C, AAA, 张三, 李四, haha, pink]
var strs = newList2.join('-'); //List转化为字符串
print(strs); //C-AAA-张三-李四-haha-pink
var s = strs.split('-'); //将分割的字符串转化为list
print(s); //[C, AAA, 张三, 李四, haha, pink]
//set
var setList = new Set();
setList.addAll(myList); //将myList = ['A','B','C','A','C']装入set中去重
print(setList); //{A, B, C}
var newList3 = setList.toList();
print(newList3); //[A, B, C]
//map
var map1 = {
"name":'张三',
"gender":'男',
"age":'18'
};
print(map1); //{name: 张三, gender: 男, age: 18}
print(map1.keys); // (name, gender, age)
var mapKeys = map1.keys.toList();
print(mapKeys); //[name, gender, age]
print(map1.values); //(张三, 男, 18)
var mapValues = map1.values.toList();
print(mapValues); //[张三, 男, 18]
//for循环,List set map通用,以list为例
for(var i=0;i<newList2.length;i++) {
print(newList2[i]);
}
//for in
for(var s in newList2) {
print(s);
}
//foreach
newList.forEach((value){
print(value);
});
map1.values.forEach((v) { //map1的value值遍历
print(v);
});
map1.forEach((k,v) { //遍历map1
print("$k--->$v");
});
//where条件判断
var list1 = [1,2,3,4,5,7,9];
var newList1 = list1.where((v) {
return v > 4;
}).toList();
print(newList1); //[5, 7, 9]
//any条件判断,只要有一个满足条件就返回true
var bool1 = list1.any((v) {
return v > 5;
});
print(bool1); //如果有一个满足条件,返回true,否则返回false
//every,每一个都满足条件就返回true,否则返回false
var bool2 = list1.every((v) {
return v > 5;
});
print(bool2); //false
//map修改内容
var list3 = list1.map((f) {
return f + 2;
});
print(list3); //(3, 4, 5, 6, 7, 9, 11)
print(list3.toList()); // [3, 4, 5, 6, 7, 9, 11]
}