安卓是否从Java中的双数组中删除重复值?
我有一个双数组:
double []signs = new double [sizelines];
我需要删除所有重复的值,或者只提取不重复的值
我试图使用Set
和HashSet
,但我无法使用双精度。我使用了以下代码:
Double[] Duplicates(double[] signs) {
Set<double[]> myset = new HashSet<double[]>(Arrays.asList(signs));
Double[] signsfinal = myset.toArray(new Double[myset.size()]);
return signsfinal;
}
我收到了以下错误:
double[]类型的源[0]无法存储在java类型的目标数组中。lang.Double[]
# 1 楼答案
在Java8中,您只需要
类似于
Double[]
# 2 楼答案
首先,需要从数组中创建一个集合。只需定义类型为
Double[]
的myArray
,就不会出现Pshemo在注释中提到的错误然后将其转换回数组
第一步是删除重复项。第二步将其转换回数组
如果myArray是double(基元类型)数组,则需要额外的步骤将其转换为等效的包装器:
# 3 楼答案
如果从数组中构造一个集合,该集合将为您排除重复的项
例如:
这会打印出来
这是你想要的输出
# 4 楼答案
试试这个: 不要忘记使用
Double
而不是double
或int
这是基本类型作为方法:
输出:
# 5 楼答案
Set和HashSet类不能与
double
或int
这样的基元类型一起工作,您必须这样做:Set<Double> mySet = new HashSet<Double>();
然后添加如下元素:mySet.add(new Double(12.5));
# 6 楼答案
当你做
Set<double[]> myset = new HashSet<double[]>(Arrays.asList(signs));
时,你实际上创建了一个Set
的double
数组,你实际上想要一组Double
。试试看:注:Java中的惯例是以小写字符开头方法名