IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Dart-编程序列 -> 正文阅读

[移动开发]Dart-编程序列

??目录

与其他编程语言不同,Dart不支持数组。Dart集合可用于复制数组结构等数据结构。dart:core库和其他类在Dart脚本中启用Collection支持。
?

List

List只是一组有序的对象。该 dart:core 库提供的列表类,使创建和列表的操作。

Dart中的列表可归类为:

  • 固定长度列表 - 列表的长度在运行时不能更改。
  • 可增长列表 - 列表的长度可以在运行时更改。

示例

  List logTypes = new List();
  logTypes.add("WARNING");
  logTypes.add("ERROR");
  logTypes.add("INFO");

  // iterating across list
  for(String type in logTypes){
    print("logTypes: ${(type)}");
  }

  // printing size of the list
  print("logTypes.length: ${(logTypes.length)}");
  logTypes.remove("WARNING");

  print("size after removing.");
  print("logTypes.length: ${(logTypes.length)}");

上述代码的输出如下

logTypes: WARNING
logTypes: ERROR
logTypes: INFO
logTypes.length: 3
size after removing.
logTypes.length: 2

?

Set

Set表示对象的集合,其中每个对象只能出现一次。dart:core库提供了Set类来实现相同的功能。

语法

Identifier = new Set()

或者

Identifier = new Set.from(Iterable)

其中, Iterable 表示要添加到Set的值列表。

示例

  Set numberSet = new  Set();
  numberSet.add(100);
  numberSet.add(20);
  numberSet.add(5);
  numberSet.add(60);
  numberSet.add(70);
  print("numberSet: Default implementation :${(numberSet.runtimeType)}");

  // all elements are retrieved in the order in which they are inserted
  for(var no in numberSet) {
    print("numberSet - ${(no)}");
  }

它应该产生以下输出

numberSet: Default implementation :_CompactLinkedHashSet<dynamic>
numberSet - 100
numberSet - 20
numberSet - 5
numberSet - 60
numberSet - 70

Set.from()

  Set setFrom = new Set.from([12,13,14]);
  print("setFrom: Default implementation :${(setFrom.runtimeType)}");
  for(var no in setFrom) {
    print("setFrom - ${(no)}");
  }

它应该产生以下输出

flutter: setFrom: Default implementation :_CompactLinkedHashSet<dynamic>
flutter: setFrom - 12
flutter: setFrom - 13
flutter: setFrom - 14

HashMap

HashMap是基于哈希表的Map实现。当您遍历HashMap的键或值时,您不能指望某个订单。相同的语法如下:

语法

Identifier = new HashMap()

示例

  var hashMap = new HashMap();
  hashMap['dept'] = 'HR';
  hashMap['name'] = 'Tom';
  hashMap['email'] = 'tom@xyz.com';
  print('hashMap: ${(hashMap)}');

它应该产生以下输出

hashMap: {email: tom@xyz.com, dept: HR, name: Tom}

将多个值添加到HashMap

HashMap类从Map类继承 addAll() 函数。此功能可以一次添加多个值。

语法

HashMap.addAll(Iterable)

其中, Iterable 表示要插入的值列表。

示例

  var hashMapAddAll = new HashMap();
  hashMapAddAll.addAll({'dept':'HR','email':'tom@xyz.com'});
  print('hashMapAddAll: ${(hashMapAddAll)}');

它应该产生以下输出

hashMapAddAll: {email: tom@xyz.com, dept: HR}

从HashMap中删除值

remove()clear() 函数用于从HashMap中删除条目。remove() 函数传递一个表示要删除的条目的密钥。clear() 函数用于从Map中删除所有条目。

示例

  var hashMapRemove = new HashMap();
  hashMapRemove.addAll({'dept':'HR','email':'tom@xyz.com', 'name':'Tom'});
  print("hashMapRemove - before: ${(hashMapRemove)}");
  hashMapRemove.remove('dept');
  print("hashMapRemove - afeter: ${(hashMapRemove)}");

  var hashMapClear = new HashMap();
  hashMapClear.addAll({'dept':'HR','email':'tom@xyz.com', 'name':'Tom'});
  print("hashMapClear - before: ${(hashMapClear)}");
  hashMapClear.clear();
  print("hashMapClear - after: ${(hashMapClear)}");

它应该产生以下输出

hashMapRemove - before: {email: tom@xyz.com, dept: HR, name: Tom}
hashMapRemove - afeter: {email: tom@xyz.com, name: Tom}
hashMapClear - before: {email: tom@xyz.com, dept: HR, name: Tom}
hashMapClear - after: {}

HashSet

HashSet是一种基于无序散列表的Set实现。

语法

Identifier = new HashSet()

add() 函数可用于填充HashSet实例。

示例

  var hashSet = new HashSet();
  hashSet.add(100);
  hashSet.add(20);
  hashSet.add(5);
  hashSet.add(60);
  hashSet.add(70);
  print("hashSet: ${hashSet.runtimeType}");
  for(var no in hashSet) {
    print("hashSet - ${(no)}");
  }

它应该产生以下输出

hashSet: _HashSet<dynamic>
hashSet - 60
hashSet - 20
hashSet - 100
hashSet - 5
hashSet - 70

将多个值添加到HashSet

所述 addAll() 函数允许添加多个值给HashSet的。

示例

  var hashSetAddAll = new HashSet();
  hashSetAddAll.addAll([100,200,300]);
  print("hashSetAddAll: ${hashSetAddAll.runtimeType}");
  for(var no in hashSetAddAll) {
    print("hashSetAddAll - ${(no)}");
  }

它应该产生以下输出

hashSetAddAll: _HashSet<dynamic>
hashSetAddAll - 200
hashSetAddAll - 300
hashSetAddAll - 100

从哈希集中删除值

remove() 函数删除传递给它的值。clear() 函数从HashSet中所有条目。

示例

  var hashSetRemove = new HashSet();
  hashSetRemove.addAll([100,200,300]);
  print("hashSetRemove - before: ${(hashSetRemove)}");
  hashSetRemove.remove(100);
  print("hashSetRemove - after: ${(hashSetRemove)}");

  var hashSetClear = new HashSet();
  hashSetClear.addAll([100,200,300]);
  print("hashSetClear - before: ${(hashSetClear)}");
  hashSetClear.clear();
  print("hashSetClear - after: ${(hashSetClear)}");

它应该产生以下输出

hashSetRemove - before: {200, 300, 100}
hashSetRemove - after: {200, 300}
hashSetClear - before: {200, 300, 100}
hashSetClear - after: {}

?

Map

Map对象是一个简单的键/值对。地图中的键和值可以是任何类型。地图是动态集合。换句话说,Maps可以在运行时增长和缩小。dart:core库中的Map类提供了对它的支持。

示例

  var details = new Map();
  details['userName']='admin';
  details['password']='admin@123';
  print("details: ${(details)}");

它应该产生以下输出

details: {userName: admin, password: admin@123}

?

Queue

队列是一个可以在两端操作的集合。当您想要构建先进先出集合时,队列非常有用。简而言之,队列从一端插入数据并从另一端删除。按插入顺序删除/读取值。

语法

Identifier = new Queue()

add()函数可用于将值插入队列。此函数将指定的值插入队列末尾。

示例

  var queue = new Queue();
  queue.add(10);
  queue.add(20);
  queue.add(30);
  queue.add(40);
  print("queue: Default implementation ${queue.runtimeType}");
  for(var no in queue){
    print("queue - ${(no)}");
  }

它应该产生以下输出

queue: Default implementation ListQueue<dynamic>
queue - 10
queue - 20
queue - 30
queue - 40

将多个值添加到队列

addAll() 函数使得能够加入多个值到一个队列,一次全部。此函数采用可迭代的值列表。

示例

  var queueAddAll = new Queue();
  queueAddAll.addAll([10,12,13,14]);
  print("queueAddAll: Default implementation ${queueAddAll.runtimeType}");
  for(var no in queueAddAll){
    print("queueAddAll - ${(no)}");
  }

它应该产生以下输出

flutter: queueAddAll: Default implementation ListQueue<dynamic>
flutter: queueAddAll - 10
flutter: queueAddAll - 12
flutter: queueAddAll - 13
flutter: queueAddAll - 14

在队列的开头和结尾添加值

addFirst() 方法将指定的值到队列的开头。此函数传递一个对象,该对象表示要添加的值。addLast() 函数将指定的对象到队列的末尾。

示例1

  var queueAddFirst = new Queue();
  queueAddFirst.addAll([100,200,300]);
  print("queueAddFirst: ${(queueAddFirst)}");
  queueAddFirst.addFirst(400);
  print("queueAddFirst: ${(queueAddFirst)}");

它应该产生以下 输出

queueAddFirst: {100, 200, 300}
queueAddFirst: {400, 100, 200, 300}

示例2

  var queueAddLast = new Queue();
  queueAddLast.addAll([1,2,3,4]);
  print("queueAddLast: ${(queueAddLast)}");
  queueAddLast.addLast(5);
  print("queueAddLast: ${(queueAddLast)}");

它应该产生以下输出

queueAddLast: {1, 2, 3, 4}
queueAddLast: {1, 2, 3, 4, 5}

?

迭代集合

来自dart:core库的Iterator类可以轻松进行集合遍历。每个集合都有一个迭代器属性。此属性返回指向集合中对象的迭代器。

示例

moveNext()函数返回一个布尔值指示是否存在后续的条目。迭代器对象的当前属性返回迭代器当前指向的对象的值。

  var numQ = new Queue();
  numQ.addAll([100, 200, 300]);
  var numIterative =numQ.iterator;
  while(numIterative.moveNext()) {
    print(numIterative.current);
  }

输出结果

100
200
300
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:27:25  更:2022-09-13 11:29:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 5:01:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码