順序を維持しながら、HashSet を使用して負の値と正の値の両方を含む値を返す必要があります。これは私が持っているものですが、エラーが発生し続けます。どんな助けでも素晴らしいでしょう。
public static double[] negated(double[] a)
{
Set<Double> x = new HashSet<Double>();
for (int i = 0; i < a.length; i++)
{
x.add((Double)a[i]);
}
for(double e : x)
{
if (x.contains(-e) == false)
{
x.remove(e);
}
}
List<Double> list = new ArrayList<Double>(x);
double[] b = new double[list.size()];
for (int i = 0; i < a.length; i++)
{
if (list.contains(a[i]))
{
b[i] = list.get(i);
}
}
return b;
}
public static void main(String[] args)
{
double[] c = {3, 4, 5, 6, -7, -5, -3, 9};
System.out.println(negated(c));
}
これはエラーです:
xception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:894)
at java.util.HashMap$KeyIterator.next(HashMap.java:928)
at Ass10.negated(Ass10.java:144)
at Ass10.main(Ass10.java:182)