I have a B4J list and each item in the list consists of an array(5) of double. I now need to sort the list in descending order using the 1st item of the array i.e on item at index 0 in the arrays of doubles within the list. Below is how they do it in the Java project that I am trying to convert to B4J. It uses Collections and a Comparator. How would one do this in B4J? Would it be better to convert the array of doubles to a Type and then sort the list according to the name of the fist type in the Type that one creates?
Example of what the list looks like before sorting it on index 0 of the arrays in each list entry
List(0) = array of double (2.9, 3.1, 4.3, 5.9, 2.5)
List(1) = array of double(7.4, 1.5, 5.2, 9.2, 7,3)
List(2) = array (of double(4.9, 3.6, 2.2, 4.2, 5.9)
After the sort it should look like this:
List(0) = array of double(7.4, 1.5, 5.2, 9.2, 7.3)
List(1) = array (of double(4.9, 3.6, 2.2, 4,2, 5.9)
List(2) = array of double (2.9, 3.1, 4.3, 5.9, 2.5)
B4X:
public ArrayList<double[]> sortArraylistOfDoubleArray(ArrayList<double[]> sortinglist) {
Collections.sort(sortinglist, new Comparator<double[]>() {
//Sorting cycles by amplitude in descending order
@Override
public int compare(double[] o1, double[] o2) {
int first = (int) o1[0];
int second = (int) o2[0];
BA.Log("in compare");
return first > second ? -1 : (first < second) ? 1 : 0;
}
});
BA.Log("out of compare");
return sortinglist;
}
Example of what the list looks like before sorting it on index 0 of the arrays in each list entry
List(0) = array of double (2.9, 3.1, 4.3, 5.9, 2.5)
List(1) = array of double(7.4, 1.5, 5.2, 9.2, 7,3)
List(2) = array (of double(4.9, 3.6, 2.2, 4.2, 5.9)
After the sort it should look like this:
List(0) = array of double(7.4, 1.5, 5.2, 9.2, 7.3)
List(1) = array (of double(4.9, 3.6, 2.2, 4,2, 5.9)
List(2) = array of double (2.9, 3.1, 4.3, 5.9, 2.5)