Search for duplicate elements in the array

Hello.
I have a pretty good working Java method, which sorts array of
strings, then searches for duplicate elements. If element is
duplicated output shows “>> hello *20 times” for example.

private void printArray()

{

String arr[] = str.split("\\n+");



Arrays.sort(arr);



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

{

  int count = 1;

  for (int i = j + 1; i < arr.length; i++)

  {

    if (arr[i].compareTo(arr[j]) == 0)

    {

      count++;

      j++;

    }

  }

  if (count > 1)

  {

    System.out.println(">> " + arr[j] + " *" + count + " times");

  } else

  {

    System.out.println(">> " + arr[j]);

  }

}

}

But the problem is that I can’t write this method in Ruby! How to make
this in Ruby?

On 16.09.2007 13:04, Ruhe wrote:

  int count = 1;

    System.out.println(">> " + arr[j] + " *" + count + " times");

}

But the problem is that I can’t write this method in Ruby! How to make
this in Ruby?

This is way inefficient. You rather want a counter per element stored
in a Map (HashMap or TreeMap in Java).

dups = Hash.new 0
arr.each {|x| dups[x]+=1}
puts dups.select {|k,v| v>1}

You can have it on one line if you prefer:

puts arr.inject(Hash.new(0)) {|d,x| d[x]+=1; d}.select {|k,v| v>1}

Kind regards

robert

On 16 , 15:32, Robert K. [email protected] wrote:

Kind regards

    robert

Thanks a lot! This is a new level of programing knowledge for me.
I’ll try to make something like this with HashMap in Java.