Dart-集合类型List、Set、Map

85 阅读2分钟

List

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
List myList = ['香蕉','苹果','西瓜'];
print(myList[1]);

var list = List();
list.add('111');
list.add('222');
print(list);

// List里面的属性:
List myList = ['香蕉','苹果','西瓜'];
print(myList.length);
print(myList.isEmpty);
print(myList.isNotEmpty);
print(myList.reversed);  // 对列表倒序排序
var newMyList = myList.reversed.toList();
print(newMyList);

// List里面的方法:
List myList = ['香蕉','苹果','西瓜'];
myList.add('桃子');   // 增加数据  增加一个
myList.addAll(['桃子','葡萄']);  // 拼接数组
print(myList);
print(myList.indexOf('苹x果')); // indexOf查找数据 ,查找不到返回-1,查找到返回索引值

myList.remove('西瓜');
myList.removeAt(1);
print(myList);

List myList = ['香蕉','苹果','西瓜'];
myList.fillRange(1, 2,'aaa'); // 修改
myList.fillRange(1, 3,'aaa');  

myList.insert(1,'aaa'); // 插入一个
myList.insertAll(1, ['aaa','bbb']);  //插入 多个
print(myList);

List myList = ['香蕉','苹果','西瓜'];
var str = myList.join('-'); // list转换成字符串
print(str);
print(str is String); // true

var str = '香蕉-苹果-西瓜';
var list = str.split('-'); // 字符串切割成数组
print(list);
print(list is List);

Set

用它最主要的功能就是去除数组重复内容。
Set是没有顺序且不能重复的集合,所以不能通过索引去获取值。
var s = Set();
s.add('香蕉');
s.add('苹果');
s.add('苹果');

print(s);  // {香蕉, 苹果}
print(s.toList()); 

List myList = ['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];
var s= Set();
s.addAll(myList);

print(s);
print(s.toList());

Map

映射(Maps)是无序的键值对。
常用属性:
        keys            获取所有的key值
        values          获取所有的value值
        isEmpty         是否为空
        isNotEmpty      是否不为空
常用方法:
        remove(key)     删除指定key的数据
        addAll({...})   合并映射  给映射内增加属性
        containsValue   查看映射内的值  返回true/false
        forEach   
        map
        where
        any
        every
Map person = {
    "name":"张三",
    "age":20
};

var m = Map();
m["name"] = "李四";
print(person);
print(m);

// 常用属性:

Map person = {
    "name":"张三",
    "age":20,
    "sex":"男"
};

print(person.keys.toList());
print(person.values.toList());
print(person.isEmpty);
print(person.isNotEmpty);


// 常用方法:
Map person={
    "name":"张三",
    "age":20,
    "sex":"男"
};

person.addAll({
  "work":['敲代码','送外卖'],
  "height":160
});
print(person);

person.remove("sex");
print(person);
print(person.containsValue('张三'));