Java 试图在只出现一次的数组中显示整数
我创建了一个长度为25的数组,其中随机生成了1到25个数字。数组中几乎总是有重复的数字,我只想显示数组中只出现一次的数字。到目前为止,只要重复的数字只重复偶数次,我的代码似乎就能工作。我的问题是,我如何使这项工作,使我只得到数字,一旦发生添加到我的字符串 我不能使用hash或set之类的东西,这是赋值的一部分Java 试图在只出现一次的数组中显示整数,java,arrays,Java,Arrays,我创建了一个长度为25的数组,其中随机生成了1到25个数字。数组中几乎总是有重复的数字,我只想显示数组中只出现一次的数字。到目前为止,只要重复的数字只重复偶数次,我的代码似乎就能工作。我的问题是,我如何使这项工作,使我只得到数字,一旦发生添加到我的字符串 我不能使用hash或set之类的东西,这是赋值的一部分 int count2 = 0; for (int d = 0; d < copy.length-1; d++) { int num = copy[d]; if
int count2 = 0;
for (int d = 0; d < copy.length-1; d++)
{
int num = copy[d];
if (num != copy[d+1])
{
s = s + "," + num;
}
else
{
d++;
}
}
int count2=0;
对于(int d=0;d
使用
这种方法非常有效,因为搜索、插入和删除都是散列集中的O(1)。我首先编写一个单独的方法来计算给定数组中某个值的出现次数,这样您就可以使用类似的方法计算每个
值的出现次数
然后你可以像这样利用它
public static String toUniqueString(int[] arr) {
StringBuilder sb = new StringBuilder();
for (int value : arr) {
if (count(arr, value) == 1) {
if (sb.length() != 0) {
sb.append(", ");
}
sb.append(value);
}
}
return sb.toString();
}
最后,对其进行测试
public static void main(String[] args) {
Random rand = new Random();
int[] arr = new int[25];
for (int i = 0; i < arr.length; i++) {
arr[i] = rand.nextInt(arr.length) + 1;
}
System.out.println(toUniqueString(arr));
}
publicstaticvoidmain(字符串[]args){
Random rand=新的Random();
int[]arr=新int[25];
对于(int i=0;i
这只会找到两个连续的副本…如果副本发生在更远的地方怎么办…您对这些也感兴趣吗?您关心订单吗?如果没有,请先对数组排序,然后应用您的方法。(不要使用+
字符串,请使用StringBuilder
)我不确定你所说的值是什么意思。@johnodom请不要这样做,也不必编辑你喜欢的编码样式。啊,好吧,祝你好运:)
public static void main(String[] args) {
Random rand = new Random();
int[] arr = new int[25];
for (int i = 0; i < arr.length; i++) {
arr[i] = rand.nextInt(arr.length) + 1;
}
System.out.println(toUniqueString(arr));
}