public class Exercise {
public static void main(String[] args)
{
int[] my_array = {1, 2, 5, 5, 6, 6, 7, 2};
for (int i = 0; i < my_array.length-1; i++)
{
for (int j = i+1; j < my_array.length; j++)
{
if ((my_array[i] == my_array[j]) && (i != j))
{
System.out.print(my_array[j]);
}
}
}
}
}
输入:{1、2、5、5、6、6、7、2} 输出:{1,7}
我只需要在数组中仅打印非重复元素,而无需使用上面的示例中的内置方法。请提供帮助。谢谢
尝试了以下方法,但不适用于所有输入:
public class Exercise {
public static void main(String[] args)
{
int[] my_array = {1, 2, 5, 5, 6, 6, 7, 2};
int[] unique = new int[20];
int uniqueLength = 0;
outerloop:for (int i = 0; i < my_array.length; i++)
{
for (int j = 0; j < uniqueLength; j++)
{
if (my_array[i] == unique[j])
{
continue outerloop;
}
}
unique[uniqueLength] = my_array[i];
System.out.println(my_array[i]);
uniqueLength++;
}
}
}
答案 0 :(得分:0)
您可以尝试一下。
public class Exercise {
public static void main(String []args) {
int[] my_array = {1, 2, 5, 5, 6, 6, 7, 2};
for (int i = 0; i < my_array.length-1; i++)
{
boolean is_non_dupe = true;
for (int j = 0; j < my_array.length; j++)
{
if ((my_array[i] == my_array[j]) && (i!=j))
{
is_non_dupe = false;
}
}
if(is_non_dupe){
System.out.println(my_array[i]);
}
}
}
}
OP:{1,7}
答案 1 :(得分:0)
要仅打印非重复数字,该代码与您显示的代码非常相似,不同之处是// AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
//
// 1 !== 0
循环必须迭代所有值,并且需要将print语句移出{{1} }循环,因此您可以在找不到重复项时进行打印,而不必自己打印重复项。
j
输出
j