问题标签 [comparator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
884 浏览

objective-c - sortedArrayUsing 和 NSComparison 结果:我不明白这些实际上是如何进行排序的

我们正在研究对数组中的对象/元素进行排序的不同方法,对我来说没有意义的是实际排序是如何完成的。我想最大的困惑是如果“排序”方法只将一个对象与另一个对象进行比较,它怎么能有效?

如果数组中有值 a、g、b、d、z、s、h,我无法通过一次查看两个值来了解算法如何将该列表按字母顺序排列。

任何照明都会很棒。

0 投票
3 回答
4100 浏览

java - 具有泛型、比较器和排序错误的 Java 类层次结构

我一直在环顾四周,看看是否能找到可以帮助我解决问题的方法,但直到现在还没有运气。我有以下课程:

和测试类:

编译器在该行给出错误

和状态

好的,经过几个小时和朋友的帮助,我们意识到问题出sort(List<T> list, Comparator<? super T> c)在抽象类 Sort 中的 Collections# 上,因为我使用Comparator<? extends T>.

我使用泛型,因为我有 2 个模型,一个模型的超类是由 35 个类子类的泛型抽象子类,而第二个模型实际上有 2 个不同的超类,它们组合在一起,又被 35 个类子类化。这些层次结构是给定的,我无法修改它们。

这里的模型非常简单,但你明白了。此外,还有一个工厂,根据 T 的类型,返回一个或另一个分拣机。

任何人都可以为我的问题提供帮助并提供解决方案(即对通用列表进行排序;参数类型可以是通用超类或其子类之一)。

谢谢和最好的问候, 多米

0 投票
2 回答
1024 浏览

c# - C# XNA 相当于 Java 的 PriorityQueue 和 Comparator?

我正在一块瓷砖上实施 Dijkstra。我想将所有图块存储在优先队列中,按它们与起始位置的距离排序。在 Java 中,这将类似于:

Queue<Point> pq = new PriorityQueue<Point>(new Comparator() { /* sort by distance from start */ });

C# XNA 中的等价物是什么?C# 有一个PriorityQueue类,但它只适用于IComparable对象,而Point对象不是。

0 投票
3 回答
4302 浏览

java - Java 泛型:Collections.max() 签名和比较器

我理解集合的get 和 put 原则:如果一个方法接受一个它将写入类型 T 的集合,则参数必须是Collection<? super T>,而如果它将从中读取类型 T ,则参数必须是Collection<? extends T>

但是有人可以解释一下Collections.max()签名吗:

特别是为什么它Comparator<? super T>而不是Comparator<? extends T>?

0 投票
19 回答
122391 浏览

java - 何时使用 Comparable 和 Comparator

我有一个需要在字段上排序的对象列表,比如分数。没有多想,我写了一个实现 Comparator 的新类,它完成了任务并且它工作。

现在回顾一下,我想知道是否应该让我的类实现 Comparable,而不是创建一个实现 Comparator 的新类。分数是对象将被排序的唯一字段。

  1. 我做了什么可以接受的做法?

  2. 正确的方法是“首先让类实现 Comparable(用于自然排序),如果需要替代字段比较,则创建一个实现 Comparator 的新类”?

  3. 如果上面的(2)是真的,那么这是否意味着只有在类实现 Comparable 之后才应该实现 Comparator ?(假设我拥有原始课程)。

0 投票
3 回答
15233 浏览

sorting - Jasper Reports crosstab sorting with comparatorExpression

I'm trying to sort my dynamic columns in a cross tab according to some custom scheme.

In the docs I found mention of comparatorExpression: Crosstab group bucket comparator expression. The result of this expression is used to sort the buckets, in ascending or descending order. If no comparator expression is specified, the natural order will be used.

but I don't understand what the expression should look like. Can I somehow use a regular java comparator? Can someone share an example?

0 投票
2 回答
2315 浏览

c++ - C ++ qsort指针数组未排序

我正在尝试在 C++ 中按字母顺序对充满可变长度记录的缓冲区进行排序。我之前问过如何实现这一点,并被告知要对指向记录的指针数组进行排序。我设置了一个指针数组,但意识到每个指针都指向记录的开头,但无法知道记录何时停止。当我尝试打印出数组中每个指针所指向的记录时,因此,对于每个指针,我都会得到所有记录的整个缓冲区,从指向的那个开始。(例如,如果缓冲区包含“Helloworld”,并且每个字母都有一个指针,则打印指针数组将产生“Helloworldelloworldlloworldloworldoworldworldorldrldldd”。)显然,这不是我想要的;此外, qsort 似乎也没有在指针数组上工作。当我调试时,指针指向的内存空间似乎包含非常奇怪的字符,这些字符绝对不属于 ascii 字符集,也不包含在我的输入文件中。我很困扰。以下是我的代码;我怎么能做到这一点而不会得到我现在得到的奇怪结果?非常感谢,bsg。

0 投票
3 回答
3459 浏览

java - 哈希表比较器问题

大家好,我从来没有写过比较器 b4,我遇到了一个真正的问题。我创建了一个哈希表。

有人可以展示如何为 Hashtable 编写比较器吗?我见过的例子超越了等于和一切,但我根本不知道。下面的代码不是我的,而是我发现的一个例子,哈希表中的关键是我猜我不能这样做。

0 投票
10 回答
63621 浏览

java - 具有空值的比较器

我们有一些代码可以根据坐标之间的距离对地址列表进行排序。这是通过带有自定义比较器的 collections.sort 完成的。

但是,有时没有坐标的地址在列表中会导致 NullPointerException。我解决此问题的最初想法是让比较器返回 0 作为至少一个坐标为空的地址的距离。我担心这可能会导致列表中“有效”元素的顺序损坏。

那么在比较器中为空数据返回“0”值是否可以,或者是否有更简洁的方法来解决这个问题?

0 投票
5 回答
5105 浏览

c# - List<> 自己的比较器

我有一个列表,其中元素是:

如何实现我自己的比较器,允许我按优先级排序列表?我尝试使用 SortredList ......但它不允许重复键:(

非常感谢您的帮助!