Dart语言零基础学习笔记(六)
Dart list定义
定义任意类型集合
var list=['one','two',10,true];
List list=['one','two'];`
定义指定类型的集合 `
var list=<String >['one','two'];
定义set类型的集合
Set 用它最主要的功能就是去除数组重复内容
Set是没有顺序且不能重复的集合,所以不能通过索引去获取值
var l = new Set();
l.add('aaa');
l.add('bbb');
l.add('ccc');
print(l); //{aaa, bbb, ccc}
l.add('ccc'); //添加重复值,无效
print(l); //{aaa, bbb, ccc}
print(l.toList());//[aaa, bbb, ccc]
Dart list常用的属性和方法
常用属性:
length 长度
reversed 翻转
isEmpty 是否为空
isNotEmpty 是否不为空
void main() {
List l = ['emo', '233', 'hhh'];
print(l.length); //3
print(l.isEmpty); //false
print(l.isNotEmpty); //true
print(l.reversed);//(hhh, 233, emo)
var newl = l.reversed.toList();
print(newl);//[hhh, 233, emo]
}
常用方法:
add 增加
addAll 拼接数组
indexOf 查找 传入具体值
remove 删除 传入具体值
removeAt 删除 传入索引值
fillRange 修改
insert(index,value); 指定位置插入
insertAll(index,list) 指定位置插入List
void main() {
List l = ['emo', '233', 'hhh'];
l.add('kkk'); //增加多个数据
print(l); //[emo, 233, hhh, kkk]
l.addAll(["age", 'manic']); //拼接数组,增加多个数据
print(l); //[emo, 233, hhh, kkk, age, manic]
print(l.indexOf('kkk')); //3 ,能索引到返回值在数组的位置。索引不到,返回-1
l.remove('233'); //删除数据 ,输入数据值
print(l); //[emo, hhh, kkk, age, manic]
l.removeAt(1); //删除数据 ,输入索引值
print(l); //[emo, kkk, age, manic]
l.fillRange(0, 2, "AAA"); //0为起始位,2为终止位。从起始位开始,到终止位之前。
print(l); //[AAA, AAA, age, manic]
l.insert(1, 'ToT');//插入一个
print(l);//[AAA, ToT, AAA, age, manic]
l.insertAll(1, ['111', '222']);//插入多个
print(l);//[AAA, 111, 222, ToT, AAA, age, manic]
}
toList() 其他类型转换成List
var s = {'aaa', 'bbb', 'ccc'};
print(s.toList()); //[aaa, bbb, ccc]
join() List转换成字符串
void main() {
List l = ['111', '222', '333'];
var str = l.join('...');//将list转换成一个字符串
print(str); //111...222...333
print(str is String);//true ,表示已经将list转换成一个字符串
}
split() 字符串转化成List
void main() {
var str = '111...222...333';
var l = str.split("...");//将字符串以“...”为切割点,分为数组
print(l);//[111, 222, 333]
print(l is List);//true
}
forEach 循环遍历
void main() {
List list = ['熊大', '熊二', 100, 1.1];
list.forEach((element) {
print(element);
});
}
// 熊大
// 熊二
// 100
// 1.1
map 遍历
List list = [1, 2, 3];
var newlist = list.map((value) {
return value * 2;
});
print(newlist);//(2, 4, 6)
where 遍历
List l = [1, 2, 3, 4, 5, 6];
var newl = l.where((value) {
return value > 3;
});
print(newl);//(4, 5, 6)
any 遍历 (只要集合里面有满足条件的元素,返回true)
List l = [1, 2, 3, 4, 5, 6];
var newl = l.any((value) {
return value > 3;
});
print(newl);//true
every遍历 (集合里面每一个元素都满足条件,返回true,否则范返回false)
List l = [1, 2, 3, 4, 5, 6];
var newl = l.every((value) {
return value > 3;
});
print(newl);//false
数组数据去重 set
var l = ['aaa', 'bbb', 'ccc', 'bbb', 'ccc'];
var s = new Set();
s.addAll(l);
print(s);//{aaa, bbb, ccc}
print(s.toList());//[aaa, bbb, ccc]