`
yangtao309
  • 浏览: 65062 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Array的排序方法sort,用法注意点

阅读更多
在ruby中Array的排序方法sort用法注意点

Returns a new array created by sorting self. Comparisons for the sort will be done using the <=> operator or using an optional code block. The block implements a comparison between a and b, returning -1, 0, or +1. See also Enumerable#sort_by.

   a = [ "d", "a", "e", "c", "b" ]
   a.sort                    #=> ["a", "b", "c", "d", "e"]
   a.sort {|x,y| y <=> x }   #=> ["e", "d", "c", "b", "a"]
以上是ruby api的说明;

我在模拟一个双色球号码生成器的case时候
def create_num
  @nums = Array.new
  
  #先选择6个红球/33球
  while @nums.length < 6
    @num = rand(32) + 1 
    unless @nums.delete(@num)
      @nums << @num
    end
  end
  
  #前面6个排序
  @nums.sort
  
  #后选择1个篮球/16球
  @nums << rand(15) + 1
end

p create_num


我以为排序后的原数组对象会想java工具类Arrays.sort一样排一下就OK了.
public class TestCase {
    final static String[] a = new String[]{"a", "g", "d", "k", "f"};
    public static void main(String[] args) {
        String[] b = new String[]{"a", "f", "d", "l", "c"};
        Arrays.sort(b);
        for(String s : b) {
            System.out.println(s);
        }
    }
}


以上ruby代码输出是没有排序的

最后修改为


def create_num
  @nums = Array.new
  
  #先选择6个红球/33球
  while @nums.length < 6
    @num = rand(32) + 1 
    unless @nums.delete(@num)
      @nums << @num
    end
  end
  
  #前面6个排序
#  @nums.sort
  #或者用这个方法sort!
  @nums.sort!
  #后选择1个篮球/16球
  @nums.sort << rand(15) + 1
end

p create_num


这是需要注意的一点 可能动态代码都不支持直接改变其引用吧

ps==================================
结果 gigix指点 可以用sort!方法 不太用心的原因
分享到:
评论
2 楼 yangtao309 2008-11-29  
gigix 写道

sort! 查文档先

不好意思 这个方法可以
搞错了
1 楼 gigix 2008-11-29  
sort!
查文档先

相关推荐

    详解数组Array.sort()排序的方法

    sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的...

    Js数组排序函数sort()介绍

    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他...

    c#中使用委托按升序和降序对一组随机生成的整型数组元素进行排序

    要求:不提供单独的升序和降序排序方法(不分别定义一个升序和一个降序方法),而只提供一个排序方法SortArray(),它接受一个委托类型的参数compare,该参数会引用要使用的比较方法。为执行降序排序,向排序方法...

    14种经典排序算法C程序(强烈推荐)

    鸡尾酒排序(双向冒泡排序)CockTailSort(int *array, int length) 或 BiDirectionalSort(int *array, int length) 3.快速排序 QuickSort(int *array, int length) 归并排序(MergeSort.h) 1.归并排序 MergeSort...

    js数组Array sort方法使用深入分析

    javascript 中 Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列,实例代码如下: var arrA = [6,2,4,3,5,1]; arrA.sort(); [removed]ln(arrA); //结果是:1,2,3,4,5,6 sort() 方法可以接受...

    array-sort:bp-array-sort 是错误的 Array.prototype.sort 方法浏览器实现的故障转移实现

    bp-array-sort 是错误的 Array.prototype.sort 方法浏览器实现的故障转移实现 安装 我们使用将其加载到浏览器中,但您应该能够将其与其他浏览器模块管理器一起使用。 在nodejs使用: npm i --save bp-array-sort...

    js使用Array.prototype.sort()对数组对象排序的方法

    本文实例讲述了js使用Array.prototype.sort()对数组对象排序的方法。分享给大家供大家参考。具体分析如下: 在讲对数组对象进行排序时,我们先来简单的了解一下Array.prototype.sort()。sort方法接受一个参数——...

    js中array的sort()方法使用介绍

    结果如下: 代码如下: [1,10,5] 仔细深究之后,发现原来默认的sort方法并不是按照整形数据来排序,而是用的字符串匹配方式。 换言之就是10 中的这个 1 导致了上面代码的错误。 当然,解决方法有很多,可以给sort方法...

    js中的数组Array定义与sort方法使用示例

    Array数组相当于java中的ArrayList 定义方法: 1:使用new Array(5 )创建数组 var ary = new Array(5); 2:使用Json语法,var ary = 【1,3,4】; 数组排序: 例: 代码如下: function sort(){ var ary=[11,12,3,5...

    深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法

    Array.prototype.sort方法是对数组进行排序, 该方法带一个函数参数,用来指定排序的规则. 我们先来看看sort 的简单应用: var arr=[2,1,3,4]; alert&#40;arr.sort(&#41;) // [1,2,3,4] 从小到大排列 //现在由大...

    arr-sort:多重条件下的数组排序方法

    安装使用安装: $ npm install --save arr-sort 安装: $ yarn add arr-sort用法按给定的对象属性对数组进行排序: var arrSort = require ( 'arr-sort' ) ;var arr = [ { foo : 'y' } , { foo : 'z' } , { foo : 'x...

    javascript 数组排序函数sort和reverse使用介绍

    reverse方法将一个Array对象中的元素位置进行反转,sort方法返回一个元素已经进行了排序的 Array 对象,下面为大家介绍下

    Js sort排序使用方法

    javascript 中 array.sort() 中的参数,需要传入的是一个函数,而且必须是一个函数

    php二维数组排序方法(array_multisort usort)

    例如像下面的数组: 复制代码 代码如下:$users = array( array(...使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下: 复制代码 代码如下:$ages = array();forea

    javascript中sort() 方法使用详解

    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点, 首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他...

    PHP排序算法之冒泡排序(Bubble Sort)实现方法详解

    本文实例讲述了PHP排序算法之冒泡排序(Bubble Sort)实现方法。分享给大家供大家参考,具体如下: 基本思想: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的...

    JavaScript常用的数组排序方法.md

    JavaScript常用数组排序方法,冒泡排序和sort()方法的使用

Global site tag (gtag.js) - Google Analytics