小编tru*_*ktr的帖子

在Java中,如何快速排序对象的ArrayList,其中排序字段是多层深度?

基本上,我有一个名为"Employees"的Container类,其中包含一个ArrayList.此ArrayList包含"Employee"对象,后者又包含"EmployeeData"对象,而这些对象又包含String对象,例如"first"或"last"(这是员工姓名).

这是ArrayList结构的图表:

ArrayList[Employee] emps ==> 1:Many ==> Employee emp
Employee emp ==> 1:1 ==> EmployeeData data
EmployeeData data ==> 1:2 ==> String last // A string that contains employee's last name.
Run Code Online (Sandbox Code Playgroud)

我将如何在ArrayList上执行快速排序,以便其中的"Employee"对象基于String对象"last"按字母顺序排列?看起来有点复杂!


这是我的课程的基本设计:

class Employees{
    //data:
        private ArrayList<Employee> emps = new ArrayList<Employee>();

    //Some constructors go here

    //Methods to add, remove, toString, etc, go here

    public /*output a sorted ArrayList?*/ sort(){
        // Some kind of "quicksort" in here to modify or create a new ArrayList sorted by employee's las name...
    } …
Run Code Online (Sandbox Code Playgroud)

java arrays sorting arraylist quicksort

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

CSS:如何摆脱一些无法解释的空间/填充?

在这个例子中:

http://jsfiddle.net/trusktr/g5sa5/

你会看到每行图像之间有一个白色的间距.世界上你如何摆脱它

html css

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

如何向$(window).load()添加函数?

只是好奇是否有一种简单的方法在$(window).load()事件被触发之前添加函数.例如,如果$(window).load()在页面开头调用两次,则只执行第二次调用的功能onload.

是否有某种工具内置到jQuery中以添加到onload事件而不是替换它?如果是这样,那$(document).ready()电话怎么样?

jquery events load onload

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

在谷歌浏览器中,除了元素检查器之外,还有更好/更多的方法来调试jQuery吗?

是否有专门针对Chrome的jQuery调试器?似乎无法找到一个.

编辑:我真正的意思是:是否有专门用于调试jQuery的调试器,而不仅仅是javascript?

debugging jquery

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

你能在加载jQuery之前编写内联的jQuery代码吗?

我根本不认为它可能,但我只是想知道,因为我的朋友在他的页面上有这个:

<html>
    <head></head>
    <body>
        <script>
            $(function(){
              // ...
            });
        </script>
        <div><span>html stuff</span></div>
        <script src="jquery-1.7.js"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

所以我只是想知道,这是有效的吗?jQuery是否会$(function(){});在完成加载后使用该块并使其工作?

javascript jquery

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

在Java中使用==,>,<等等比较两个相同类型的对象会发生什么?

可能重复:
等于和==之间的差异

例如,如果我有

MyClass foo = new MyClass();
MyClass bar = new MyClass();

if (foo == bar) {
    // do something
}
if (foo < bar) {
    // do something
}
if (foo > bar) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

怎么做foobar比较?Java是否在寻找.compareTo()要实现的方法MyClass?Java是否在内存中比较对象的实际二进制结构位?

java conditional

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

从自定义元素中删除is =""属性的预期行为是什么?

例如,

假设我们有<div is="awesomebutton"></div>一个自定义元素定义:

document.registerElement('awesomebutton', AwesomeButton)
Run Code Online (Sandbox Code Playgroud)

is=""删除属性或用新值替换属性时的预期行为是什么?

html javascript web-component polymer custom-element

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

如何等待“自定义元素”引用被“升级”?

我有一个元素的引用,该元素有时会升级为自定义元素。我如何等待它升级?

例如,假设el是参考。如果假设为此目的附加了承诺,则代码可能类似于

await el.upgradePromise
// do something after it has been upgraded.
Run Code Online (Sandbox Code Playgroud)

那当然不存在,但是描述了我想做什么。也许没有轮询就没有办法吗?如果使用轮询,我将轮询什么(假设我没有对应该升级到的类构造函数的引用)。也许我可以轮询el.constructor并等待其不属于HTMLElement,或等待它不被HTMLUnknownElement

编辑:对于背景,我有一些类似以下的代码,其中使用setTimeout是为了使代码正常工作的技巧。第一个console.log输出false,而超时中的一个输出true。

import OtherElement from './OtherElement'

class SomeElement extends HTMLElement {
    attachedCallback() {
        console.log(this.children[0] instanceof OtherElement) // false

        setTimeout(() => {
            console.log(this.children[0] instanceof OtherElement) // true
        }, 0)
    }
}
Run Code Online (Sandbox Code Playgroud)

在哪里OtherElement引用将在某个时候注册的Custom Element类。请注意,我使用的是Chrome v0 document.registerElement。需要超时,因为如果SomeElement首先按以下代码OtherElement注册,则将尚未注册,因此,因此如果SomeElement元素的子级是的实例OtherElement,那么在升级这些元素之前不会如此下一个。

document.registerElement('some-el', SomeElement)
document.registerElement('other-el', OtherElement)
Run Code Online (Sandbox Code Playgroud)

理想情况下,这样的超时是不希望的,因为如果升级花费了更长的时间(由于某些未知原因,可能取决于浏览器的实现),那么超时破解也将失败。

我想要一种绝对的方式来等待升级,而不会出现故障,并且如果可能的话也不会进行轮询。也许过一段时间也需要取消吗?

编辑:理想的解决方案将使我们能够等待任何第三方自定义元素的升级,而无需在运行前修改这些元素,也不必在运行时进行猴子补丁。

编辑:从观察Chrome的v0行为来看,似乎第一个调用document.registerElement('some-el', SomeElement)导致那些元素升级,并且在注册之前attachedCallback …

javascript dom web-component polymer custom-element

4
推荐指数
2
解决办法
1094
查看次数

Reflect.construct 可以让我们做什么以前无法做到的事情?

我试图找到一个很好的理由来Reflect.construct实现一些我以前无法实现的值得注意的事情。

我不是在寻找像这里的答案,因为那个例子似乎不是很有用。例如,我为什么要写

function greetingFactory(name) {
  return Reflect.construct(Greeting, [name]);
}
Run Code Online (Sandbox Code Playgroud)

当我可以写

function greetingFactory(name) {
  return new Greeting(name);
}
Run Code Online (Sandbox Code Playgroud)

?

你知道任何值得注意的用例Reflect.construct吗?

编辑:似乎我自己找到了一个用例,但我不确定它是否可靠以及它是否不会分崩离析,但基本上似乎我可以new.target通过编写它们来使用 ES5 样式的类这个:

function Foo() {
  console.log('Foo, new.target:', new.target)
  this.name = "foo"
}

Foo.prototype.sayHello = function sayHello() {
  return this.name
}

function Bar() {
  console.log('Bar, new.target:', new.target)
  let _ = Reflect.construct(Foo, [], new.target)
  _.name = _.name + " bar"
  return _
}

Bar.prototype = Object.create(Foo.prototype)

Bar.prototype.sayHello = function() {
  return "Hello " + …
Run Code Online (Sandbox Code Playgroud)

javascript reflection

4
推荐指数
2
解决办法
1897
查看次数

在Java中,如何根据方法的情况返回String或double?可能吗?

例如,我有一个方法,通过字符串查找由指定的分隔符分隔的数据,但有些项可能是名称,其他项可能是数字.

如果用户调用我的方法从已删除列表中返回项目编号X,我希望它在项目X是名称时返回字符串,或者如果项目X是数字则返回双精度.

例如,objectName.get(5);将获得已删除列表中的第5项.

我是否必须使用某种类型的重载?

或者我是否必须做一些类似的事情objectName.getDouble(5);objectName.getString(5);基于用户知道项目5是什么的事实?

但是如果用户不知道项目5是什么呢?他只需要一个String或一个Double,取决于它碰巧是什么.

java methods overloading return-type return-value

3
推荐指数
2
解决办法
4万
查看次数