既存のプログラムでnoDups()というメソッドを作成して、順番を乱すことなく、以前にソートされた配列から。質問には、O(N)のアルゴリズムでなければならないと述べられており、重複がいくつあっても、何度も移動された項目がないことを確認します。ロング[]をセットに変更する。エラーメッセージ:型コレクション内のaddAllメソッドは引数には適用されません。(<Long>、long [])
最初はネストされたfor-loopを繰り返し実行して重複を削除しましたが、O(N^2)であることがわかりました。私はあなたがセットでこの問題を解決できることを学んだ。私はエラーが述べられてき保つ
public long[] noDups(long[] target) { //Method for removing duplicates
Set<Long> set = new HashSet<Long>();
Collections.addAll(set, target);
return target;
}
:私はセットだけで一意の値が含まれているため、長い[](プログラムが使用する配列の型)配列に取るとセットに変換する方法を書いてみましたタイトルに:
"The method addAll(Collection, T...) in the type Collections is not applicable for the arguments (Set, long[])"
私の方法は、このように見えたが、私は別のエラーを持っていた前に:
public void noDups(long[] target){
Set<long> set = new Hashset<long>(Arrays.asList(target));
私は、Set間違っを初期化するだろうか?誰かがエラーを取り除くか、長い[]をセットに変換する正しい方向に私を導く方法を教えてもらえますか?ありがとうございました!