gpt4 book ai didi

java - 从数组中删除左侧重复项

转载 作者:行者123 更新时间:2023-12-05 09:08:33 26 4
gpt4 key购买 nike

我正在尝试查找我的代码中的错误,我想知道您是否可以帮助我。我的任务是编写一个方法,将一个数组作为输入并返回这个数组而不留下重复项(最后一个数字保留)。我的代码在输入为(1,2,1,2,1,2,3)时不起作用,它返回(1,1,2,3)而不是1,2,3。这是代码

     public static int [] solve(int [] arr){
boolean check=false;
ArrayList<Integer> test = new ArrayList<>(); // idk how to compete this task without ArrayList
for (int i = 0; i < arr.length; i++) { // Here i pass my array to ArrayList
test.add(arr[i]);
}

while(check==false) {
for (int i = 0; i < test.size(); i++) {
for (int j = i + 1; j < test.size(); j++) { // Somewhere here must be my mistake that i can't find
check=true;
if (test.get(i) == test.get(j)) {
test.remove(i);
check=false;
}
}
}
}
// i created second array to return array without duplcates.
int arr2[];
arr2=new int[test.size()];
for(int i=0;i<arr2.length;i++){
arr2[i]=test.get(i);
}

return arr2;

}
}

我试图自己完成这项任务,所以直到现在我才使用 Google 寻求帮助。如果您知道如何改进我的代码,请随意更改您想要的一切。提前致谢!

最佳答案

HashSet可以这样做,因为你不能将重复元素放入 HashSet ,您需要做的就是将数组放入 HashSet .

List<Integer> arr2 = new ArrayList<>(new HashSet<>(arr));

关于java - 从数组中删除左侧重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63458798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com