天天看点

Dart语言学习三:集合List、Set、Map

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

1、字符串切割为List

var str='张三-李四-王五-赵六-王二麻子';
var list=str.split('-');
print(list);
print(list is List);
           

2、List常规操作

var list = [1, 2, 3, 4, 5, 6, 7];
  print(list);// [1, 2, 3, 4, 5, 6, 7]
  print(list.length);// 7
  print(list[0]);// 1

  var lis = new List();
  lis.add("张三");
  print(lis);// [张三]

  var l=new List<String>();//指定类型
  l.add("da");
  l.add("ge");
  print(l);// [da, ge]
           

Set:

1、用它最主要的功能是去除数组中的重复内容。

2、Set是没有顺序不能重复的集合,所以不能通过索引获取值。

常用属性:

        length          长度

        isEmpty         是否为空

        isNotEmpty      是否不为空

常用方法:  

        add         增加

        addAll      拼接数组

        remove      删除  传入具体值

        contains   是否包含

        forEach   

        map

        where

        any

        every

var s = new Set();
  s.add('张三');
  s.add('李四');
  s.add('李四');

  print(s); //{张三, 李四}

  s.remove("张三");
  print(s);//{李四}
           

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=new Map();
  m["name"]="李四";
  
  print(person);//{name: 张三, age: 20}
  print(m);//{name: 李四}

 bool p= person.containsValue("张三");
 print(p);//true
           

循环方法:

这五个方法同时支持List、Set、Map。

forEach   :增加for循环

 map : 返回一个经过操作的新集合

 where:返回一个满足条件的新集合

 any:集合中只要又一个满足条件的数据,就返回true,否则返回false。

 every:只有当集合中所有的元素都满足条件时,才返回true,否则返回false。

1、forEach()

//*****  List  *****

  List myList = ['张三', '李四', '王五'];

  myList.forEach((value) {
    print("$value");
  });

  //*****  set  *****

  var s = new Set();
  s.addAll([1, 222, 333]);
  s.forEach((value) => print(value));

  //*****  map  *****

  Map person = {"name": "张三", "age": 20};
  person.forEach((key, value) {
    print("$key---$value");
  });
           

2、map()

List myList = [1, 3, 4];
  var newList = myList.map((value) {
    return value * 2;
  });
  print(newList.toList());// [2, 6, 8]
           

3、where()

List myList = [1, 3, 4, 5, 7, 8, 9];

  var newList = myList.where((value) {
    return value > 5;
  });
  print(newList.toList());//[7,8,9]
           

4、any()

List myList = [1, 3, 4, 5, 7, 8, 9];

  var f = myList.any((value) {
    return value > 5;
  });
  print(f);//true
           

5、every()

List myList=[1,3,4,5,7,8,9];

  var f=myList.every((value){

      return value>5;
  });
  print(f);// false