私はソートしたリストを持っていますが、List
をColor[]
に変換したいのですが、これらの色をリストに入れる理由の1つは、リスト内の色を並べ替えることができます。それは色だけを含んでいます。今すぐ並べ替えることができるので、リストをColor[]
に変えたいと思います。これまで私はそれを変換するさまざまな方法を試みましたが失敗しました。リストを使用する理由は、現在の色に対応する座標に基づいて色を並べ替えるためです。ここではより多くの背景である:ここではObject []をColor []に変換する方法
は私の試みです:ここでは
SortColors s = new SortColors();
s.x = roi.x;
s.y = roi.y;
s.color = colorToAdd;
は、その順序付けクラスは次のとおりです。このいずれかに失敗した
public class SortColors implements Comparable<SortColors> {
public int x, y;
public Color color;
@Override
public int compareTo(SortColors other) {
if (null==other) throw new NullPointerException();
// implement the logic, like:
// this will compare X, unless difference in Y is more than EG 10
return Math.abs(y - other.y) > 10 ? y - other.y : x - other.x;
}
@Override
public String toString(){
/* String result = "";
result = "x " + x + ", y " + y + "\n" + color.toString() + "\n";
System.out.println(result);
*/
return color.toString();
}
}
1.キャスト:
Color [] sortedColors = (Color[]) colorsToSort.toArray(); //List to a Object Array
別のものがあります。
私もこれを試してみましたが、ArrayStoredExceptionを得る
Object [] sortedColors = colorsToSort.toArray(); //List to an Object Array
Color[] sorted = Arrays.copyOf(sortedColors, sortedColors.length, Color[].class);
を(これは私にArrayStore例外を得た):
Color [] sortedColors = colorsToSort.toArray(new Color[54]); //List to a Color Array
Poss [オブジェクト配列をJavaの文字列配列に変換する方法]の複製(https://stackoverflow.com/questions/1018750/how-to-convert-object-array-to-string-array-in-java) – Li357
If String []でのみ動作する答えを見てください。私はその答えを試み、それは働いていませんでした。 @AndrewLi – ProgrammingCuber
"*これらの色をリストに入れている唯一の理由は、自分の比較を実装してリスト内の色を並べ替えることができるようにするためです。"また、 'sort'メソッドを使って独自のComparatorで配列を' java.util.Arrays'クラスです。とにかく 'list.toArray(new Color [0]);'で特定の型のList配列から戻ることができます。 – Pshemo