use*_*685 -1 java android arraylist multidimensional-array
如何根据数组中每个项的第一个维度对ArrayList进行排序?
例:
![要排序的ArrayList <float []>](https://i.stack.imgur.com/4DbbS.png)
您需要使用自定义比较器.例如:
Comparator<float[]> byFirstElement = new Comparator<float[]>() {
@Override
public int compare(float[] arg0, float[] arg1) {
return Float.compare(arg0[0], arg1[0]);
}
};
Collections.sort(theArray, byFirstElement);
Run Code Online (Sandbox Code Playgroud)
这个实现假设两个float[]数组实际上至少有一个元素; 如果他们不这样做,比较会抛出一个ArrayIndexOutOfBoundsException.如果你不完全确定数组总是非空的,你的compare函数应该检查arg0.length并arg1.length适当地处理它们(你需要处理的三种情况是只有arg0空时,只有arg1空时,或两者都是空).
它的分配是一个好主意,Comparator<float[]>到private static final你们班.这有点高效,因为每次使用它都不需要创建新对象; 但更重要的是,它赋予它一个漂亮,易于阅读的名称.
| 归档时间: |
|
| 查看次数: |
1497 次 |
| 最近记录: |