小编Dan*_*cio的帖子

为什么在Java 1.8中进行此类排序

取自Joshua Bloch和Neal Gafter的Java Puzzlers

import java.util.*;

public class BananaBread {
    public static void main(String[] args) {
        Integer[] array = { 3, 1, 4, 1, 5, 9 };
        Arrays.sort(array, new Comparator<Integer>() {
            public int compare(Integer i1, Integer i2) {
                return i1 < i2 ? -1 : (i2 > i1 ? 1 : 0);
            }
        });
        System.out.println(Arrays.toString(array));
    }
}
Run Code Online (Sandbox Code Playgroud)

预期的行为是未定义的,文本说它返回[3,1,4,1,5,9].这适用于Java V1.7.但是,在Java v.1.8中,输出是排序列表.

我可以看到Timsort是Java 1.8中的新功能,但我不确定算法如何使用不一致的比较器(例如上面给出的)来运行.任何有关如何做到这一点的帮助或见解将不胜感激.

java arrays sorting timsort

4
推荐指数
1
解决办法
212
查看次数

阻止onClick事件发生多次(jQuery)

我只是从jQuery和web开发开始,所以,请原谅任何天真的错误.我正在尝试使用一个导致动画发生的按钮.也就是说,这个动画只是从左到右移动一个'h2'标题,然后再移回(并且平凡地改变颜色).

我使用以下代码时遇到的问题是,如果用户多次单击该按钮,则会导致按钮继续通过转向点.我了解到这是一个异步问题,并尝试在动画调用中使用回调函数来重新启用按钮功能.

如您所见,我通过设置queue:false变量解决了这个问题.由于我还是新手,有没有一种简单的方法可以做到这一点?

谢谢你的帮助!

var toTheRight = true;
$('#animation').click(function () {
    var header = $('h2')[0].style.left.toString();
    var headerNum;
    if (header.length < 5) {
        headerNum = 0;
    }
    else {
        headerNum = +(header.substring(0, header.length - 2));
    }
    if (headerNum >= 450) {
        toTheRight = false;
        $('h2').css("background-color", "green");
    }
    if (headerNum < 100) {
        toTheRight = true;
        $('h2').css("background-color", "orange");
    }
    var modified;
    var stringified;
    if (toTheRight) {
        modified = Math.round((headerNum + 100) / 100) * 100;
        strigified = modified + "px";
        $('h2').animate({
            "font-size": …
Run Code Online (Sandbox Code Playgroud)

jquery animation callback

2
推荐指数
1
解决办法
101
查看次数

标签 统计

animation ×1

arrays ×1

callback ×1

java ×1

jquery ×1

sorting ×1

timsort ×1