博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
as3 sort
阅读量:4349 次
发布时间:2019-06-07

本文共 2203 字,大约阅读时间需要 7 分钟。

将一个Vector中的值进行排序大部分使用Vector对象的方法与使用Array对象的方法都一样。有一个方法你需要知道的不一样的是在Vector对象元素排序。Vector类仅有一个方法给值排序:sort()方法。sort()方法不会更改原始的Vector对象。取而代之,它返回具有相同基类型包含已排序了值的一个新的Vector。当你使用Vector类的sort()方法时,它没有默认的排序行为,即使是基本的数据类型如Number或者String。正因为如此,任何时候你使用sort()方法,你都需要指明一个自定义的排序函数来定义排序逻辑。例如,下面的代码中,一个Number类型的Vector对象使用sort()方法来排序。在这个案例中,这个代码演示了基本的数据排序;小的数字放在大的数字前面(升序排列)。名为sortNumbers()的函数定义了排序行为,它做为一个参数传递给了sort()方法调用。Flash Player给每个数字排序时,它调用sortNumber()函数,将要进行比较的两个数值传递给函数,结果决定最终排序的顺序:var numberVector:Vector.
= new Vector.
();numberVector.push(2, 17, 3.6, 4.4, 29, -34, 0.09235); trace(numberVector); // output: 2,17,3.6,4.4,29,-34,0.09235 var sortedVector:Vector.
= numberVector.sort(sortNumbers); trace(sortedVector); // output: -34,0.09235,2,3.6,4.4,17,29 function sortNumbers(x:Number, y:Number):Number{ if (x < y) { return -1; } else if (x > y) { return 1; } else { return 0; }}你可以定义为任意数据类型定义一个排序函数。例如,下面的代码为Vector的Person对象根据姓氏(last name)进行了排序,然后是名字(first name)(它假定了有一个Person类具有firstName和lastName属性):var personVector:Vector.
= new Vector.
();personVector[0] = new Person("Bob", "Smith");personVector[1] = new Person("Harold", "Johnson");personVector[2] = new Person("Barbara", "Smith");personVector[3] = new Person("Arnold", "Anderson");personVector[4] = new Person("Margaret", "Wooster"); // output:[Smith,Bob],[Johnson,Harold],[Smith,Barbara],[Anderson,Arnold],[Wooster,Margaret]trace(personVector); var sortedVector:Vector.
= personVector.sort(sortPeople); // output:[Anderson,Arnold],[Johnson,Harold],[Smith,Barbara],[Smith,Bob],[Wooster,Margaret]trace(sortedVector); function sortPeople(x:Person, y:Person):Number{ // sort by last name var lastNameSort:Number = sortStrings(x.lastName, y.lastName); if (lastNameSort != 0) { return lastNameSort; } else { // if the last names are identical, sort by first name return sortStrings(x.firstName, y.firstName); }} function sortStrings(x:String, y:String):Number{ if (x < y) { return -1; } else if (x > y) { return 1; } else { return 0; }}

 

转载于:https://www.cnblogs.com/jiangjieqim/p/5938635.html

你可能感兴趣的文章
【NOI2015】品酒大会
查看>>
内部类单例模式,
查看>>
opensuse13.1 安装 SqliteMan
查看>>
念初三生活
查看>>
zbb20180827 java获取html内容
查看>>
node处理get和post请求
查看>>
【JAVA集合详解】LinkedList
查看>>
面向 例题
查看>>
RSA加密
查看>>
HTML5游戏开发进阶指南
查看>>
ASP.NET GBK读取QueryString
查看>>
[LintCode] 159 Find Minimum in Rotated Sorted Array
查看>>
在reshard过程中,将会询问reshard多少slots:
查看>>
地精排序-最简单的排序算法
查看>>
跑路啦 跑路啦 这个博客废掉啦
查看>>
JQuery 实现返回顶部效果
查看>>
辛苦挣钱买房,结果房产证一直办不下来
查看>>
Which kind of aspects of OIL PRESS MACHINERY would you like best
查看>>
[转载] 晓说——第17期:揭秘战争秘闻 朝鲜战争62年祭(下)
查看>>
java集合系列之ArrayList源码分析
查看>>