Java-HashSet zu array
Ich versuche, zu konvertieren, ein HashSet, um ein Array von Doubles. Ja, ich habe eine main-Methode und Klasse definiert, ich habe nur enthalten, was ich importiert haben, sowie den code für diese spezielle Funktion.
Dies ist der Fehler, das zeigt:
Ass10.java:148: error: no suitable method found for toArray(double[])
rtrn = s.toArray(rtrn);
Hier ist der code:
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;
public static double[] negated(double[] a) {
Set<Double> s = new HashSet<Double>();
for(double x : a) {
s.add(x);
} for(double x : s) {
if(s.contains(-x) == false) {
s.remove(x);
}
}
double[] rtrn = new double[s.size()];
rtrn = s.toArray(rtrn);
return rtrn;
}
Im wesentlichen gibt es keine Möglichkeit, den Fall einem Doppel - [] zu einem Double[] wie es ist ein Doppel -, ein Doppel-und Umgekehrt.
InformationsquelleAutor PenguinProgrammer | 2013-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht mit einem primitiven array in diesem Szenario, da es keine auto-Boxen für arrays in Java. Verwenden Sie eine
Double[]
für diese Arbeit.InformationsquelleAutor Costi Ciudatu
Java collections arbeitet mit Referenz geben. Die Funktion
Collection.toArray(T[] a)
hat eine Signatur, die der generische Typ der Referenz. So werden Sie brauchen, um passieren eine Referenz-Typ "array" statt der primitiven array. Die entsprechenden Referenz-Typs von primitiven Typdouble
istDouble
.InformationsquelleAutor Sage
Dies ist eine compile-Zeit-Fehler, richtig? Versuchen Sie es mit Doppel - [] statt double[].
InformationsquelleAutor peter.petrov