2013-11-28 65 views
1

我試圖將HashSet轉換爲雙精度數組。是的,我有一個主要的方法和類定義,我剛剛包括我導入的以及這個特定功能的代碼。Java HashSet到陣列

這是顯示了錯誤:

Ass10.java:148: error: no suitable method found for toArray(double[]) 
       rtrn = s.toArray(rtrn); 

下面是代碼:

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; 
     } 
+0

基本上沒有辦法將double []轉換爲Double [],就像double有雙精度,反之亦然。 – Sinkingpoint

回答

1

您不能在這種情況下使用的基本數組,因爲沒有自動拳擊Java中的數組。使用Double[]即可工作。

0

這是一個編譯時錯誤,對吧?嘗試使用Double []而不是double []。

1

Java集合使用引用類型。函數Collection.toArray(T[] a)具有通用引用類型的簽名。所以你需要傳遞一個引用類型數組而不是基本數組。對應的基本類型的原始類型doubleDouble

Double[] rtrn = new Double[s.size()]; 
rtrn = s.toArray(rtrn);