Geo*_*iev 6 java arrays duplicates
我正在尝试编写一个程序,它将生成一个随机的十个整数数组(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));
}
Run Code Online (Sandbox Code Playgroud)
}
一个很好的方法是使用Set.这是一个只包含唯一值的结构.
Set<Integer> set = new HashSet<Integer>();
int[] array = {1,1,2,2,2,3,3,4,5,6,8};
for (int num : array) {
set.add(num);
}
System.out.println(set);
Run Code Online (Sandbox Code Playgroud)
输出:
[1, 2, 3, 4, 5, 6, 8]
Run Code Online (Sandbox Code Playgroud)
要将集转换为可以使用的数组set.toArray().