Tag: 排序

获取集合中N个最小的项目

我有一个未分类的对象集合[可比较],是否有可能获得列表集合的子列表而无需调用排序? 我正在考虑使用有限容量执行SortedList的可能性,但这看起来不是正确的选项。 我可以很容易地写这个,但我想知道是否还有另一种方式。 我无法修改现有集合的结构。

在Java中对子类进行排序

假设一个Superclass implements Comparable ,这样就是Arrays.sort(ArrayOfSuperInstances); 使用此compareTo(Superclass other)方法进行排序。 这是否保证Subclass extends Superclass的实例数组将使用Arrays.sort(ArrayOfSubInstances);以相同的方式Arrays.sort(ArrayOfSubInstances); ? (假设compareTo在子类定义中没有重载) 或者换句话说,默认情况下Subclass会inheritance其Superclass的compareTo方法,以便可以盲目地使用Arrays.sort()知道它们将被排序为超类吗?

使用Comparator进行Java FX表列排序不起作用

在Java FX中,我想在已排序的TableView中显示此模型: public class ProfilZuordnungTableRowModel { private int id; private double kundenwert; private String kundenwertFormatted; private BooleanProperty selected; } 我想将表列排序与“Kundenwert”列集成。 显示的值应该是属性“kundenwertFormatted”(String),并且应该使用属性“kundenwert”(Double)进行排序。 所以我写了一个比较器: class ProfilZuordnungTableRowModelComparator implements Comparator { @Override public int compare(ProfilZuordnungTableRowModel t, ProfilZuordnungTableRowModel t1) { return t.getKundenwert() < t1.getKundenwert() ? -1 : t.getKundenwert() == t1.getKundenwert() ? 0 : 1; } } 根据我的理解,这个比较器应该以下列方式使用: TableColumn kundenwertColumn = […]

在Java中对txt文件进行排序的最佳方法

我有一个CSV文件,我正在使用opencsv库进行处理。 所以我可以阅读每一行。 我需要做的特定转换要求我在使用java文件的主要部分运行之前先对该文件进行排序。 例如 5423, blah2, blah 5323, blah3, blah 5423, blah4, blah 5444, blah5, blah 5423, blah6, blah 应该成为 5323, blah3, blah 5423, blah2, blah 5423, blah4, blah 5423, blah6, blah 5444, blah5, blah 等等.. 我需要这样做的原因是我将具有相同id的所有行组合并将它们输出到新文件。 有什么不对: 使用opencsv库读取csv的每一行 将它们添加到二维数组中 对此进行某种排序 循环排序数组并输出到文件。 关于此的任何其他想法以及对数据进行排序的最佳方法是什么? 我的Java上有点生锈。 更新:澄清最终输出 它看起来像: 5323, blah3, blah 5423, blah2!!blah4!!blah6, blah 5444, blah5, blah […]

同时对多个arrays进行排序“就地”

我有以下3个数组: int[] indexes = new int[]{0,2,8,5}; String[] sources = new String[]{“how”, “are”, “today”, “you”}; String[] targets = new String[]{“I”, “am”, “thanks”, “fine”}; 我想根据索引对三个数组进行排序: indexes -> {0,2,5,8} sources -> {“how”, “are”, “you”, “today”} targets -> {“I”, “am”, “fine”, “thanks”} 我可以创建一个包含所有三个元素的新类myClass : class myClass { int x; String source; String target; } 将所有内容重新分配给myClass,然后使用x对myClass进行排序。 但是,这需要额外的空间。 我想知道是否可以进行in place排序? 谢谢!

如何从排序列表中获取第一个元素?

我使用了Collections.sort(playersList); 排序List 。 所以,我认为playersList现在已经排序了。 但是我怎样才能获得列表的第一个元素? playersList[0]不起作用。

分配1亿个具有较小物理内存的整数

想要输出1亿个整数,我的系统只有1 GB的RAM。什么是最快速有效的排序方式? 假设我们在文本文件中有一个输入,每行一个整数。 我们正在使用java程序进行排序。 我已经指定了RAM,因为我们无法保存RAM中的所有输入整数。 更新:整数是7位数字。

用比较器和交换函数进行java排序

我需要使用自定义比较器和交换function对函数进行排序。 我可以自己写一个,但我想知道其他人是否还没有这样做。 Java运行时包含许多专门的排序函数,用于排序基本类型,对象等数组,但它们都没有将交换函数作为参数。 谷歌搜索也没有找到任何有用的东西。 public interface IntComparator { int compare(int a, int b); } public interface IntSwap { void swap(int a, int b); } public static void sort(IntComparator compFn, IntSwap swapFn, int off, int len);

寻找字母顺序和自然顺序的组合(又名用户理智排序)

我认为这很容易找到premade,但似乎我在网上找到的任何解决方案只能解决部分问题。 我想对用户提供的文件名列表(文件大多以人和/或地址命名),有时用不同语言(大多数是德语,有点法语和意大利语混合在一起) ,很少有任何其他西方语言)。 我们的想法是以(德国)用户普遍认为合理的方式呈现此列表。 这意味着订单应该遵循Locale.GERMAN的java.text.Collat​​or ,但同时期望是对字符串中的数字进行例外处理,因此“10”在“2”之后。 我找到了在网上进行自然排序的代码,但它依赖于逐字符比较(而Collat​​or不支持)。 我可以使用子字符串来破解某些内容,但在比较器内部,我认为在每次比较调用时创建多个子字符串并不是最明智的想法。 任何想法如何有效地实现这一点(在执行时间和实现时间),或者更好的是经过测试和即用的实现?

在字符串数组上使用quicksort

我是一名编程学生,而不是发布整个作业,我只是要求帮助解决我已经尝试了几个小时现在才能理解的内容。 我的任务是使用quicksort方法对字符串数组进行排序。 我作为这个问题的一部分负责的其他所有事情都很好但是当我通过打印字符串数组测试排序方法时,它完全混乱,没有任何看似押韵或理由。 请帮我查明代码中的错误,或者我忽略的几个明显的错误。 提供的字符串数组是65个名称的列表: http : //pastebin.com/jRrgeV1E ,方法的代码如下: private static void quickSort(String[] a, int start, int end) { // index for the “left-to-right scan” int i = start; // index for the “right-to-left scan” int j = end; // only examine arrays of 2 or more elements. if (j – i >= 1) { […]