我已经为实验室提出了这个问题,即从用户那里获取一组int,然后删除任何重复项,最后以相同的顺序返回数组。我们被限制使用Hashsets和其他相关的想法。没有理由订购列表,因为它必须符合原始订单。任何人都可以给我一些正确方向的提示或指示,我一直在使用其他一些问题已经回答了一些帮助。以下是我到目前为止的情况:
public class Q3C {
public static void main() {
System.out.println("Enter your numbers please: ");
Scanner numbers = new Scanner(System.in);
String nums = numbers.nextLine();
String[] parts = nums.split(" ");//
int[] n1 = new int[parts.length];//
for (int n = 0; n < parts.length; n++) {
n1[n] = Integer.parseInt(parts[n]);
}
}
我正在考虑创建另一个方法,名为removeDuplicates并将数组发送给它,然后通过它,检查每个索引的其他重复项,并将所有重复项设置为下一个索引值。我只是无法解决这个问题。任何帮助深表感谢。
答案 0 :(得分:0)
这里只使用数组(没有集合)的结果:
int[] input = {1, 3, 4, 1, 2, 2, 4, 5, 6, 6};
int[] result = new int[input.length];
int resultSize = 0;
for (int anInput : input) {
boolean found = false;
for (int j = 0; j < resultSize; j++) {
if (anInput == result[j]) { // already exists
found = true;
break;
}
}
if (!found) { // add
result[resultSize++] = anInput;
}
}
// copy to new result only real values
int[] newResult = new int[resultSize];
System.arraycopy(result, 0, newResult, 0 , resultSize);
System.out.println("result = " + Arrays.toString(newResult));
结果是:
result = [1, 3, 4, 2, 5, 6]