假设我有一个名为 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/