首页 > 解决方案 > 使用Java在不使用内置方法的情况下打印数组中的非重复整数元素

问题描述

 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++;
}
} 
}

标签: javaarraysloopsduplicateslogic

解决方案


你可以试试这个。

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]); 
           }
     }
  } 
}

操作:{1,7}


推荐阅读