【发布时间】:2014-04-16 16:06:11
【问题描述】:
我正在尝试编写一个程序,该程序将生成一个随机的十整数数组(1 到 6 之间的整数),然后我必须形成另一个删除所有重复项的数组。所以 {1,3,5,5,3,4,2,2,2,1} 应该返回 {1,3,5,4,2}。 问题是我得到了答案,但输出数组在重复项所在的位置包含 0,我不知道如何减少临时数组的长度(如果可能的话)。 这是我的程序:
import java.util.*;
public class Lab9Tut12{
public static void main (String[]args){
int [] numbers = new int[10];
//int length = 10;
int[] temp = new int[length];
for(int i=0;i<10;i++){
numbers [i] = (int)(Math.random()*6+1);
System.out.print(numbers [i]);
System.out.println();
}
for(int i=1;i<10;i++){
if(numbers[i-1]!=numbers[i]){
temp[i]= numbers[i];
//length--;
}
}
System.out.println(Arrays.toString(temp));
}
}
【问题讨论】:
-
你不能减少数组长度,因为它有一个固定的大小,不能在运行时改变。
-
你需要第一个数组吗?如果不是,您可以在输入重复项的新值时进行验证。或者您可以使用 Set(不允许重复)。
-
如果他们中的任何一个对您有帮助,您应该接受答案。
标签: java arrays duplicates