我是Java新手,我很难尝试将旧数组中的唯一值添加到我的新数组中,从技术上讲,我必须返回一个包含唯一元素的新数组,而不使用集合。
public static void main(String[] args) {
double[] list = {1,2,1};
double [] Arr = new double[list.length];
for(int i = 0; i < list.length; i++) {
for(int x = 0; x < list.length; x++) {
if(list[i] != list[x]){
}
}
}
}
问题:如何将它们添加到新阵列?
我将其更改为:
int index = 1;
int unique = 0;
newArray[0] = list[0];
while( index < list.length) {
if(list[index] != list[index - 1]){
unique = unique + 1;
newArray[unique] = list[index];
}
index++;
}
return newArray;
}
立即行动。
答案 0 :(得分:1)
我还没有执行此操作,但是代码下方应该让您对如何完成此操作有充分的了解
Python
新数组在删除重复项后最后会有默认的0值,您可能需要修剪它,可能会创建一个public static void main(String[] args) {
double[] list = {1,2,1};
double [] Arr = new double[list.length];
int uniqueIndex = 0;
for(int i = 0; i < list.length; i++) {
boolean present = false;
for(int x = 0; x < uniqueIndex; x++) {
if(list[i] == Arr[x]){
present = true;
break;
}
}
if(!present)
Arr[uniqueIndex++] = list[i];
}
}
答案 1 :(得分:1)
仅仅因为我无法自助,这是使用Java 8功能的另一种选择。它比其他人简洁得多,但可能不是你的老师所追求的。
public static void main(String[] args) {
double[] list = {1, 2, 1};
double[] arr = Arrays.stream(list).distinct().toArray();
System.out.println(Arrays.toString(arr));
}
答案 2 :(得分:0)
另一种方法。新手应该自己编写代码。
1)对数组/列表进行排序。
2)遍历数组/列表直到length-1,如果list [i]!= list [i + 1],则将列表[i]推送到新列表。
3)如果list [length-1]!= list [length],将列表[length]推送到新列表。
复杂性:O(nlgn)+ O(n)