10. Dart集合类型List set Map详解以及相关循环语句
AI 概述
List 列表类型声明变量List 属性List 里面的方法增加数据查找数据删除数据修改数据插入数据数组与其它类型互转Set 集合类型Map 映射类型1. 映射类型的表示方法2. Map 映射类型常用属性3. 映射类性常用方法列表与集合常用的循环方法列表与集合常用的过滤方法
List 列表类型
常用属性:
length 长度
rev...
目录
文章目录隐藏
List 列表类型
常用属性:
length长度reversed翻转isEmpty是否为空isNotEmpty是否不为空
常用方法:
add()增加addAll()拼接数组indexOf()查找方法,传入具体值remove()删除方法,传入具体值removeAt()删除方法,传入索引值fillRange()修改方法,3 个参数,第一个参数起始位置(包含),第二个参数结束位置(不包含),第三个参数为要修改的数据。insert(index,value)第一个参数指定位置插入,第二个参数要插入的数据insertAll(index,list)第一个参数指定位置插入,第二个参数要插入的 List 数据toList()其他类型转换成 Listjoin()List 转换成字符串split()字符串转化成 List
声明变量
//1、声明时直接赋值
List cars= {'奔驰', '宝马', '劳斯莱斯幻影'};
//2、先声明再赋值,new 在 dart 中可以省略
Set book= new Set();
book.add('码云');
book.add('码云笔记');
book.add('技术博客');
print(cars); //{奔驰, 宝马, 劳斯莱斯幻影}
print(book); //{码云, 码云笔记, 技术博客}
List 属性
void main() {
List myList = ['mybj', '技术博客', '前端教程'];
print(myList.length);
print(myList.isEmpty);
print(myList.isNotEmpty);
print(myList.reversed); //对列表倒序排序
var newMyList = myList.reversed.toList(); //对列表先倒序再转换成 List
print(newMyList);
}
运行结果:
3 false true (前端教程, 技术博客, mybj) [前端教程, 技术博客, mybj]
List 里面的方法
增加数据
void main() {
List myList = ['香蕉', '苹果', '西瓜'];
myList.add('桃子'); //增加数据 增加一个
print(myList);
myList.addAll(['车厘子', '葡萄']); //拼接数组
print(myList);
}
运行结果:
[香蕉, 苹果, 西瓜, 桃子] [香蕉, 苹果, 西瓜, 桃子, 车厘子, 葡萄]
查找数据
void main() {
List myList = ['香蕉', '苹果', '西瓜'];
print(myList.indexOf('苹 x 果')); //indexOf 查找数据,查找不到返回-1,查找到返回索引值
}
运行结果:
-1
删除数据
void main() {
List myList = ['Dart', 'JavaScript', 'Vue'];
myList.remove('Vue');
print(myList);
myList.removeAt(1);
print(myList);
}
运行结果:
[Dart, JavaScript] [Dart]
修改数据
void main() {
List myList = ['Dart', 'JavaScript', 'Vue'];
myList.fillRange(1, 2, 'Flutter'); //修改一个数据
print(myList);
myList.fillRange(1, 3, 'React'); //修改多个数据
print(myList);
}
运行结果:
[Dart, Flutter, Vue] [Dart, React, React]
插入数据
void main() {
List myList = ['Dart', 'JavaScript', 'Vue'];
myList.insert(1, 'java'); //插入 一个
print(myList);
myList.insertAll(1, ['html', 'php']); //插入 多个
print(myList);
}
运行结果:
[Dart, java, JavaScript, Vue] [Dart, html, php, java, JavaScript, Vue]
数组与其它类型互转
join()方法:
void main() {
List myList = ['前端', '后端', '都是 IT'];
//list 转换成字符串
var str = myList.join('-');
print(str); //前端-后端-都是 IT
print(str is String); //true
}
split()方法:
void main() {
var str = '前端-后端-都是 IT';
// 按指定字符将字符串分割成数组
var list = str.split('-');
print(list); //[前端, 后端, 都是 IT]
print(list is List); // true
}
Set 集合类型
Set 用它最主要的功能就是去除数组重复内容,它是没有顺序且不能重复的集合,所以不能通过索引去获取值。
void main() {
var setA = new Set();
setA.add('前端');
setA.add('后端');
// 无法添加重复的数据
setA.add('前端');
print(setA); //{前端, 后端}
print(setA.toList()); // [前端, 后端]
List myList = ['前端博客', '前端开发', '前端教程', '前端博客', '前端开发', '前端博客', '前端开发'];
var setB = new Set();
setB.addAll(myList);// 对数组进行去重
print(setB); // {前端博客, 前端开发, 前端教程}
print(setB.toList()); // [前端博客, 前端开发, 前端教程]
}
Map 映射类型
常用属性:
keys获取所有的 key 值values获取所有的 value 值isEmpty是否为空isNotEmpty是否不为空
常用方法:
remove(key)删除指定 key 的数据addAll({...})合并映射 给映射内增加属性containsValue查看映射内的值 返回 true/false
1. 映射类型的表示方法
void main() {
// 映射类型表示方法
Map person = {"name": "张三", "age": 20};
// 初始化及添加属性和值
var man = new Map();
man["name"] = "李四";
print(person);// {name: 张三, age: 20}
print(man);// {name: 李四}
}
2. Map 映射类型常用属性
void main() {
Map person = {"name": "张三", "age": 20, "sex": "男"};
// 获取所有属性
print(person.keys.toList());// [name, age, sex]
// 获取所有值
print(person.values.toList());// [张三, 20, 男]
// 判断是否为空
print(person.isEmpty);// false
// 判断是否非空
print(person.isNotEmpty);// true
}
3. 映射类性常用方法
void main() {
Map person = {"name": "刘能", "age": 20, "sex": "男"};
// 添加属性和值
person.addAll({
"work": ['搬砖', '跳舞'],
"height": 160
});
print(person);
// {name: 刘能, age: 20, sex: 男, work: [搬砖, 跳舞], height: 160}
// 移除属性
person.remove("sex");
print(person);
// {name: 刘能, age: 20, work: [搬砖, 跳舞], height: 160}
print(person.containsValue('160'));// false
}
列表与集合常用的循环方法
void main() {
List myList = ['前端', '后端'];
for (var i = 0; i < myList.length; i++) {
print(myList[i]);
// 前端
// 后端
}
for (var item in myList) {
print(item);
// 前端
// 后端
}
myList.forEach((value) {
print("$value");
// 前端
// 后端
});
Map person = {"name": "谢大脚", "age": 30};
person.forEach((key, value) {
print("$key,$value");
// name,谢大脚
// age,30
});
List oldList = [1, 3, 4];
var newList = oldList.map((value) {
return value * 2;
});
print(newList.toList());
// [2, 6, 8]
}
列表与集合常用的过滤方法
void main() {
List myList = [1, 3, 4, 5, 7, 8, 9];
// where 所有满足条件的集合
var newList = myList.where((value) {
return value > 5;
});
print(newList.toList());// [7, 8, 9]
// any 只要集合里面有满足条件的就返回 true
var flagA = myList.any((value) {
return value > 5;
});
print(flagA);// true
// every 集合里面所有都满足条件返回 true 否则返回 false
var flagB = myList.every((value) {
return value > 5;
});
print(flagB);// false
}
以上就是 Dart 集合类型 List set Map 详解以及循环语句 forEach、map、where 、any、every 的用法。下节我们学习 Dart 中的函数。
以上关于10. Dart集合类型List set Map详解以及相关循环语句的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 10. Dart集合类型List set Map详解以及相关循环语句
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 10. Dart集合类型List set Map详解以及相关循环语句

微信
支付宝