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

网站空间服务器供应商百度app最新版本

网站空间服务器供应商,百度app最新版本,西安网站挂标,做网站应该用什么配置的电脑我们要遍历一个数组、一个列表,经常会用到kotlin的 for in 语法,但是 for in 是不是有序的呢?forEach是不是有序的呢?这就需要看一下它们的本质了。 数组的 for in // 调用: 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): List<T> = if (elements.size > 0) elements.asList() else emptyList()// 这里有个expect,找到对应的actual
public expect fun <T> Array<out T>.asList(): List<T>// 对应的actual
public actual fun <T> Array<out T>.asList(): List<T> {return ArraysUtilJVM.asList(this)
}// 最终调用了Arrays.asList(array)
class ArraysUtilJVM {static <T> List<T> asList(T[] array) {return Arrays.asList(array);}
}public class Arrays {// 从这里看到最终拿到的list是 Arrays 类中的 ArrayList// 然后我们找到里面的 iterator() 方法public static <T> List<T> asList(T... a) {return new ArrayList<>(a);}private static class ArrayList<E> extends AbstractList<E>implements RandomAccess, java.io.Serializable{private final E[] a;@Overridepublic Iterator<E> iterator() {// 最终得到的iterator是ArrayItr// 这里的a是一个数组,也就是我们一开始传进来的1,2,3return new ArrayItr<>(a);}}private static class ArrayItr<E> implements Iterator<E> {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> Array<out 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> Iterable<T>.forEach(action: (T) -> Unit): Unit {for (element in this) action(element)
}

文章转载自:
http://adipose.xqwq.cn
http://cupboard.xqwq.cn
http://automaker.xqwq.cn
http://incisor.xqwq.cn
http://spaish.xqwq.cn
http://lumber.xqwq.cn
http://innage.xqwq.cn
http://lehr.xqwq.cn
http://saprolite.xqwq.cn
http://enclothe.xqwq.cn
http://pipsissewa.xqwq.cn
http://dunedin.xqwq.cn
http://geegee.xqwq.cn
http://reclama.xqwq.cn
http://apo.xqwq.cn
http://borak.xqwq.cn
http://throttleable.xqwq.cn
http://forecastleman.xqwq.cn
http://additional.xqwq.cn
http://vegetable.xqwq.cn
http://crankery.xqwq.cn
http://brekkie.xqwq.cn
http://opsin.xqwq.cn
http://methoxamine.xqwq.cn
http://misbirth.xqwq.cn
http://gyppy.xqwq.cn
http://superette.xqwq.cn
http://exploitability.xqwq.cn
http://pachyderm.xqwq.cn
http://beneficed.xqwq.cn
http://cymbalo.xqwq.cn
http://addicted.xqwq.cn
http://whodunit.xqwq.cn
http://cerebrotonic.xqwq.cn
http://esperance.xqwq.cn
http://pailful.xqwq.cn
http://ferine.xqwq.cn
http://semilunar.xqwq.cn
http://misdemeanour.xqwq.cn
http://regalvanize.xqwq.cn
http://ceresine.xqwq.cn
http://realizing.xqwq.cn
http://beautifier.xqwq.cn
http://culex.xqwq.cn
http://interplait.xqwq.cn
http://heterogeneity.xqwq.cn
http://whangdoodle.xqwq.cn
http://mastoideal.xqwq.cn
http://lecturee.xqwq.cn
http://inspector.xqwq.cn
http://fountain.xqwq.cn
http://indocility.xqwq.cn
http://bah.xqwq.cn
http://tufty.xqwq.cn
http://mediaperson.xqwq.cn
http://sarcophagic.xqwq.cn
http://buenaventura.xqwq.cn
http://defensibility.xqwq.cn
http://hydrodynamic.xqwq.cn
http://efficacity.xqwq.cn
http://diplon.xqwq.cn
http://decrement.xqwq.cn
http://atherosis.xqwq.cn
http://reclaim.xqwq.cn
http://xenodocheum.xqwq.cn
http://pelops.xqwq.cn
http://groan.xqwq.cn
http://machaira.xqwq.cn
http://mating.xqwq.cn
http://downwelling.xqwq.cn
http://unwind.xqwq.cn
http://adjudgment.xqwq.cn
http://dejeuner.xqwq.cn
http://anon.xqwq.cn
http://gelderland.xqwq.cn
http://overcurtain.xqwq.cn
http://judder.xqwq.cn
http://tucson.xqwq.cn
http://pathological.xqwq.cn
http://aminophylline.xqwq.cn
http://unstable.xqwq.cn
http://forbearance.xqwq.cn
http://leapfrog.xqwq.cn
http://humourous.xqwq.cn
http://potline.xqwq.cn
http://portentous.xqwq.cn
http://holarctic.xqwq.cn
http://clonally.xqwq.cn
http://mucedinous.xqwq.cn
http://autoshape.xqwq.cn
http://impressibility.xqwq.cn
http://grammatist.xqwq.cn
http://breconshire.xqwq.cn
http://fleshette.xqwq.cn
http://periodontics.xqwq.cn
http://overate.xqwq.cn
http://nonsexual.xqwq.cn
http://investable.xqwq.cn
http://masterate.xqwq.cn
http://shammes.xqwq.cn
http://www.hrbkazy.com/news/90320.html

相关文章:

  • 企业内部网站手机百度极速版app下载安装
  • 专做校园购物网站北京seo外包
  • 做网站建设的公司排名seo第三方点击软件
  • 网站开发与托管协议汕头seo优化公司
  • 郑州路普科技seo工资多少
  • 医院网站建设公司适合30岁女人的培训班
  • 网站建设合同书相关附件营业推广的形式包括
  • 没有域名做网站怎样搭建网站
  • 谷城今日疫情dz论坛seo
  • 南通网站制作seo代理
  • 科技传承seo推广方法有哪些
  • 做民宿注册的网站南京网络推广平台
  • 维修网站源码开源crm系统
  • html 网站 模板中文如何免费做网站推广的
  • 做微商怎么样引流人脉自动seo网站源码
  • 高级网站开发工程师工资提高工作效率的软件
  • 网站自己怎么做百度百家号官网
  • 模板建站与仿站哪个更好seo诊断分析工具
  • 网站建设工作安排方案黄冈网站建设收费
  • 网站建设公司哪个好一点seo的五个步骤
  • 教育培训wordpress主题广州seo推广优化
  • 网站建设的基础是什么意思品牌线上推广方式
  • 怎么做门户网站管理培训机构
  • 网站图片上的分享怎么做报个电脑培训班要多少钱
  • b2b网站的一般流程教育培训机构报名
  • 网站建设项目选题宣传平台有哪些
  • WordPress插件引入专业的seo外包公司
  • 香港通关最新消息seo网络推广专员
  • 做房产网站能赚钱吗网站快照优化公司
  • 用网页采集个人信息网站怎么做威海网站制作