java - 对不同类型的对象进行排序(性能)

标签 java performance sorting

假设我有一个名为 Unit 的类(带有位置变量 x),并将该类扩展为 UnitA、UnitB、UnitC 等。

这是我想到的:

Unit[] ordered = new Unit[a_num+b_num+c_num];
ordered = Arrays.copyOf(a_units, a_num); //and add b_units, c_units, etc
Arrays.sort(ordered); //sort using compareTo method
  • 为了获得最佳性能和简洁的编程,从左到右对这些值(x 变量)进行排序的最佳方法是什么?
  • 当数组排序后,为了访问单元特定的变量,如何找出每个条目的对象类型?

最佳答案

如果您必须找出每个条目的对象类型,那么您就错了。

多态是唯一的出路。这就是面向对象语言的用途。

您没有说明您想要如何对单位进行排序。您指的是物理单位,例如长度米、质量千克、时间秒?如果是,“排序”它们是什么意思?当然,你可以按字母顺序排列,但我不知道这有什么意义。

什么是“位置变量”?您的意思是您将在不同的“位置”拥有一个具有米、英尺、埃和弗隆等基础值的长度单位吗?您将如何订购它们?靠人气?答案会有所不同,具体取决于您是否位于少数仍然使用英制单位的国家之一(例如美国;甚至英国放弃了英制单位!)或公制。

关于java - 对不同类型的对象进行排序(性能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13219491/

相关文章:

java - 鼠标事件 "cannot find symbol"错误的解决方案

java - 如何获得不同的结果,但在选择中返回另一列?

java - 使用结构/类来增加缓存空间局部性?

java - 根据元素的几个类别对大列表进行排序或分离

用于 cobol 显示和解压缩数字字段的 Java 映射

java - 如何创建通用枚举转换器?

java - 性能问题 - JSF 中 AjaxStateHolder 中的 LRUMap()?

java - 如何防止 Java 创建 hsperfdata 文件?

javascript - 如何在 2d 游戏中对对象进行排序?

python - 从 csv 文件 Python 中的位置列表中查找最近的位置