当前位置: 首页 > news >正文

赣州新闻视频江北seo综合优化外包

赣州新闻视频,江北seo综合优化外包,做设计用哪个素材网站,网站开发答辩知识点我们要遍历一个数组、一个列表#xff0c;经常会用到kotlin的 for in 语法#xff0c;但是 for in 是不是有序的呢#xff1f;forEach是不是有序的呢#xff1f;这就需要看一下它们的本质了。 数组的 for in // 调用#xff1a; val arr arrayOf(1, 2, 3) for (ele in …我们要遍历一个数组、一个列表经常会用到kotlin的 for in 语法但是 for in 是不是有序的呢forEach是不是有序的呢这就需要看一下它们的本质了。 数组的 for in // 调用 val arr arrayOf(1, 2, 3) for (ele in arr) {println(ele) }反编译成Java是个什么东西呢 Integer[] arr new Integer[]{1, 2, 3}; Integer[] var4 arr; int var5 arr.length;for(int var3 0; var3 var5; var3) {int ele var4[var3];System.out.println(ele); }总结从Java代码可以看出实际就是一个普通的for循环是从下标0开始遍历到结束的所以是有序的。 列表的 for in // 调用 val list listOf(1, 2, 3) for (ele in list) {println(ele) }反编译成Java List list CollectionsKt.listOf(new Integer[]{1, 2, 3}); Iterator var3 list.iterator();while(var3.hasNext()) {int ele ((Number)var3.next()).intValue();System.out.println(ele); }可以看出列表的for in是通过iterator实现的和数组不一样那这个iterator遍历是否是有序的呢首先我们要知道这个iterator怎么来的 // iterator 是通过调用 list.iterator() 得到的那么这个list又是什么呢 Iterator var3 list.iterator();// list List list CollectionsKt.listOf(new Integer[]{1, 2, 3});// list是通过数组elements.asList()得到的 public fun T listOf(vararg elements: T): ListT if (elements.size 0) elements.asList() else emptyList()// 这里有个expect找到对应的actual public expect fun T Arrayout T.asList(): ListT// 对应的actual public actual fun T Arrayout T.asList(): ListT {return ArraysUtilJVM.asList(this) }// 最终调用了Arrays.asList(array) class ArraysUtilJVM {static T ListT asList(T[] array) {return Arrays.asList(array);} }public class Arrays {// 从这里看到最终拿到的list是 Arrays 类中的 ArrayList// 然后我们找到里面的 iterator() 方法public static T ListT asList(T... a) {return new ArrayList(a);}private static class ArrayListE extends AbstractListEimplements RandomAccess, java.io.Serializable{private final E[] a;Overridepublic IteratorE iterator() {// 最终得到的iterator是ArrayItr// 这里的a是一个数组也就是我们一开始传进来的1,2,3return new ArrayItr(a);}}private static class ArrayItrE implements IteratorE {private int cursor;private final E[] a;ArrayItr(E[] a) {this.a a;}Overridepublic boolean hasNext() {return cursor a.length;}Overridepublic E next() {int i cursor;if (i a.length) {throw new NoSuchElementException();}cursor i 1;return a[i];}} }总结列表的for in是通过iterator实现的这个iterator是ArrayItr从里面的next()方法可以看出这也是有序的从cursor开始cursor默认是0也就是从下标0开始遍历。 注这里只是分析了Arrays.ArrayList的iterator具体的集合类需要具体分析比如ArrayList、LinkedList等不过从正常思维来看iterator是一个迭代器就应该有序的把数据一个一个丢出来。 数组的 forEach // 调用 val arr arrayOf(1, 2, 3) arr.forEach {println(it) }// 点进去forEach看 // 其实也是调用了for in所以也是有序的。 public inline fun T Arrayout T.forEach(action: (T) - Unit): Unit {for (element in this) action(element) }列表的 forEach // 调用 val list listOf(1, 2, 3) list.forEach {println(it) }// 点进去forEach看 // 其实也是调用了for in所以也是有序的。 public inline fun T IterableT.forEach(action: (T) - Unit): Unit {for (element in this) action(element) }
http://www.pierceye.com/news/476191/

相关文章:

  • 公司网站建设方案ppt网站下载织梦模板
  • 免费创建虚拟网站漳州鼎信
  • 武义县网站建设公司上海seo外包
  • 免费html网站模板下载怎么做网站外链接
  • 南昌网站建设公司收费桂林做网站的公司有哪些
  • 南京网站建设方案智能管理系统
  • 黄埔网站建设价格资源网站推广
  • 桦南县建设局网站动漫制作技术和动漫设计
  • 在农村开个网站要多少钱网站客户运营
  • 免费做文字图网站企业所得税计算方式
  • 做网站要有策划么设计师专用网站
  • 站长之家是什么哈尔滨模板建站服务商
  • 自己做网站需要备案么关键词seo资源
  • 用tornado做网站网站建设素材库
  • dedecms织梦古典艺术书画书法公司企业网站源码模板wordpress 优酷插件
  • 深圳购物网站建设301跳转wordpress
  • 如何做自己的加盟网站开发高端客户
  • 沈阳网站建设哪里好wordpress模块管理系统
  • 跨境外贸平台有哪些天津百度快速排名优化
  • 网站建设需要了解哪些方面企业的网站建设与设计论文
  • 网站建设市场分析内蒙古企业网站建设
  • 广州 网站建设公司不用代码做网站的软件
  • 本地php网站搭建wordpress前台注册登入
  • 网站做推广页需要什么软件下载豪禾创意海报设计理念
  • 河北特定网站建设推荐网站建设的技术可行性
  • 招投标 网站建设哈尔滨做网站哪好
  • 骏域网站建设专家东莞展台展馆设计搭建
  • 免费的html网站东丽手机网站建设
  • 网站建设谈客户说什么广州网站快速制作
  • 寻花问柳专注做男人喜爱的网站做网站教程 第一课