java - 打印数组元素而不重复元素

标签 java arrays for-loop

我有一个 java 类,它涉及一个字符串数组和两个 for 循环

用于遍历数组元素并打印它们以及它们在

中的冗余

数组,因为它们是字符串。

我希望有人帮我打印每个元素(字符串)一次,即使它也是

在数组中重复。

以下代码多次打印数组中的某个元素。

所以需要比较数组的元素

 public class myClassName {

 static String [] myArray = {"Khaled","Valderama","Daoud","Khaled","Rasheed","Daoud","Valderama","Khaled"};

      public static String [] getArray()

      {

      String str[] = new String[myArray.length];

     for(int i=0;i<myArray.length;i++)

       {

       str[i] = myArray[i].toString();

        }

       return str;

     }

     public static void main( String [] args)

     {

     String d [] = getArray();

     int noOftimesRepeated;

          for(int i=0;i<getArray().length;i++)

          {

          noOftimesRepeated=1;

          String currentName = d[i];

          for(int j=0;j<getArray().length;j++)

          {

          if(i!=j && d[i].equalsIgnoreCase(d[j]))

          {

          noOftimesRepeated = noOftimesRepeated+1;

          }


          }

          int j =0;


          System.out.println(d[i]+"\t" +"\t"+noOftimesRepeated);

  }

 }

}

请问有没有不使用.util.*包的解决方案

我有第二次尝试,但它打印出一个元素并且它是冗余的

只有。

 public class Javafool {

      static String [] myArray = {"Khaled","Valderama","Daoud","Khaled","Rasheed","Daoud","Valderama","Khalo","Valderama"};

     static String str2[] = new String[myArray.length];


     public static String [] getArray()
      {

      String str[] = new String[myArray.length];


      for(int i=0;i<myArray.length;i++)

      {

      str[i] = myArray[i].toString();

      }

      return str;

      }

      public static void main(String[] args) {

      String d [] = getArray();

      int noOftimesRepeated;

       sort(myArray);

       int no_of_repeat=1;

        String temp =null;

     int i   ;

      for(  i = 0;i<myArray.length-1;i++)

       {

           temp = myArray[i];

         myArray[i] = myArray[i+1];

         myArray[i+1] = temp;

       if(myArray[i].equals(temp))

       {

       no_of_repeat=  ++no_of_repeat;

       }

     }

      System.out.println(myArray[i]+""+temp+"\t"+"\t\t"+no_of_repeat);

      }

     public static void sort(String [] array) {

       String temp = null;

       for(int j=0;j<array.length;j++)
             {

         for(int i = 0; i<array.length-1;i++)
              {
           if(array[i].compareTo(array[i+1])<0)
                {

         temp = array[i];

         array[i] = array[i+1];

         array[i+1] = temp;

           }

           }}}}

最佳答案

将字符串添加到 Set<String> ,它消除了重复值,然后打印它们:

List<String> list = Arrays.asList("Khaled", "Valderama",...);
Set<String> set = new LinkedHashSet<String>(list);

for(String s : set)
  System.out.println(s);

关于java - 打印数组元素而不重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18697802/

相关文章:

java - 一遍又一遍地初始化重复任务的最佳实践是什么

ruby - 如何仅将一个值的累加和添加到数组?

java - Eclipse Java 中的 Scala 对象嵌套类

java - 录制视频时启用相机闪光灯

java - Arraylist作为方法中的参数并在多个Arraylist中添加数据

java - 使用 hibernate 和 jersey JSP viewables 实现按请求 session + 延迟获取

JavaScript:将字符串 push() 到数组中返回 **null**

javascript - 从配置读取的多个 FOR var 循环问题

java - 我如何使用 For 循环而不是 while 来做同样的事情?

Java程序打印N以内的所有奇数,每行打印10个整数