Frequently Asked Java Program 19: How To Find Duplicate Elements in Array

Поділитися
Вставка
  • Опубліковано 24 січ 2025

КОМЕНТАРІ • 59

  • @bhushanmali2598
    @bhushanmali2598 2 роки тому +4

    Finally i found this in a very perfect way of explanation. Thank you ❤️

  • @divyad9144
    @divyad9144 3 роки тому +12

    In the first for loop i should be less than arr.length()-1, bcz when i is at index 4, then j will be i+1 (i.e) 5 which will lead to ArrayIndexOutofBound exception

    • @Testology-PradeepPandey
      @Testology-PradeepPandey 2 роки тому +1

      Hahaha...asking or telling

    • @msgudaduramath4980
      @msgudaduramath4980 2 роки тому +1

      It is not nessesary to compare the last element with others because it is already compared by other elements

  • @sarathr4495
    @sarathr4495 Рік тому +2

    Hash set way is life saver sir 👍

  • @gauri992
    @gauri992 3 роки тому +3

    Ur the best Sir. thanku

  • @srinivasrao-lw6xk
    @srinivasrao-lw6xk 3 роки тому +1

    I wrote this program . Bt when I take two duplicate(java,c) in the set . The out is showing like duplicate element is : java and next line duplicate element is c.

  • @MDALAM-yh3pf
    @MDALAM-yh3pf 2 роки тому +1

    first java is small j , last 2 java is capital J; how you prove multiple entry give same result?

  • @BharathKumarEnishetty
    @BharathKumarEnishetty 2 роки тому

    we can directly write as if(flag) , it would look good right , though it is fine , thanks

  • @Amitpatil-g8g
    @Amitpatil-g8g Рік тому

    great sir. plz upload latest trending logical programs java in automation interview.

  • @thesurajpatade
    @thesurajpatade 3 роки тому +2

    Using HashSet approach, if we have{java, java, java} it will print three times java which is not right, any solution to this?

    • @csRHarish
      @csRHarish 2 роки тому

      How it allowing duplicate values to u?

  • @jarvisfriday7452
    @jarvisfriday7452 4 роки тому +1

    suppose if we have multiple duplicates like {"java","python","ruby","c#","python","java"} ??? how to print those duplicates separately?

    • @kanithisatishkumar7036
      @kanithisatishkumar7036 3 роки тому

      if you got this code plzz post it ?

    • @baggumani
      @baggumani 3 роки тому +1

      @@kanithisatishkumar7036 Iterator i=langs.iterator();
      while(i.hasNext())
      {
      System.out.println(i.next());
      }
      Use Iterator to print all the values in Hashset.

    • @sarves2482
      @sarves2482 11 місяців тому

      @@baggumani iterator returns all the values in the String including duplicates, not only the duplicates

  • @kanithisatishkumar7036
    @kanithisatishkumar7036 3 роки тому +6

    sir, please provide code for multiple duplicates.

  • @Shwethatp
    @Shwethatp Рік тому

    sir along with the finding the duplicate elements i want to print how many times it's repeated...can you help me with this program

  • @tarunsharma9974
    @tarunsharma9974 2 роки тому +2

    How can I get the count of this duplicate element

    • @omprakash7040
      @omprakash7040 2 роки тому

      +1

    • @tarunsharma9974
      @tarunsharma9974 2 роки тому

      @@omprakash7040 it didn't work like that, can you please share the code

    • @gurunathkulkarni-ry8yv
      @gurunathkulkarni-ry8yv Рік тому

      ​@@tarunsharma9974 First intinalize count as 0 after printing the duplicate elements increment the count.

  • @as8212
    @as8212 5 років тому

    Can some body explain; on first logic first element is compared with elements after that, so say 3 rd element is compared with 4th element, it is not compared with first or second, Is that logic right???

    • @Mm-zt1gk
      @Mm-zt1gk 4 роки тому

      No need coz duplicate off first nd second already searched

    • @renjithdhoni7
      @renjithdhoni7 4 роки тому

      Thats not needed when you search,i=1. And j=3 ,the same thing need to be searched in j=3 and i=1

    • @bharathkoneru4008
      @bharathkoneru4008 4 роки тому

      Not needed because i=0, j=1 (arr[0]== arr[1]) comparison is already done to check for duplicates. So, there is no need of comparing again with the former i.e; i=1, j=0 arr[1] == arr[0]

    • @harish3787
      @harish3787 4 роки тому

      Take the upper for loop once and check what it is printing ok
      Then check what the lower for loop checking
      Now put i = let's say 4
      And then u put 2nd for loop you will see it will give values upto 4 ok so it always checks values hoto that point

  • @snehalwakode5291
    @snehalwakode5291 Рік тому +1

    Thank u sir..

  • @sridhar6358
    @sridhar6358 3 роки тому +3

    The given array is {"java","C","C++","python","java"}
    the first iteration java is compared with c c++ python and java but with iterations as it goes forward
    the second iteration c is compared with c++ python and java
    the third iteration c++ is compared with python and java
    the fourth iteration python is compared with java

    • @dsantoshini
      @dsantoshini 2 роки тому

      yes

    • @keshavrawal2746
      @keshavrawal2746 2 роки тому +1

      it works as you said bcoz in first iteration "java" is already compared with all the elements

  • @mohammedajazquadri7869
    @mohammedajazquadri7869 5 років тому +1

    Sir your mail is there?? I have some doubts??

  • @silvere4830
    @silvere4830 3 роки тому

    Please, provide an example with Java Streams

  • @TheShubhamVsnv
    @TheShubhamVsnv Рік тому +3

    ?? how can fix this if i have three same element ??
    arr[]={"java","c","c++","python","java","java"};
    output : java
    java
    java

  • @faisalsakib9586
    @faisalsakib9586 5 років тому +1

    How to remove duplicate duplicate values from array ??

    • @theflutterboi
      @theflutterboi 3 роки тому

      use Set

    • @7zI1tVgvcC
      @7zI1tVgvcC 3 роки тому

      Create a new array and add the elements only when Not duplicate. Or use a java collection type that ignores duplicates

  • @sridhar6358
    @sridhar6358 3 роки тому

    The first logic wont work well as it does not compare with the previous values

  • @HvujES
    @HvujES 3 роки тому

    the methods are time complexity are really bad. the 1st one is O(N^2).
    you can do it in O(N) with 1 loop and check for 3 or more duplicates/
    the code:(same for String)
    class FindDuplicate {
    // Function to print duplicates
    void printRepeating(int arr[], int size)
    {
    int i;
    System.out.println("The repeating elements are : ");

    for (i = 0; i < size; i++) {
    int j = Math.abs(arr[i]);
    if (arr[j] >= 0)
    arr[j] = -arr[j];
    else
    System.out.print(j + " ");
    }
    }

    // Driver code
    public static void main(String[] args)
    {
    FindDuplicate duplicate = new FindDuplicate();
    int arr[] = { 1, 2, 3, 1, 3, 6, 6 };
    int arr_size = arr.length;

    duplicate.printRepeating(arr, arr_size);
    }
    }
    for String:
    String[] users = "User1,User2,User1,User,User".split(",");
    Set uniquUsers = new HashSet();
    for (int i = 0; i < users.length; i++) {
    if (!uniquUsers.add(users[i]))
    users[i] = "Duplicate"; // here I am assigning Duplicate instead if find duplicate
    // you can assign as null or whatever you want to do with duplicates.
    }
    System.out.println(Arrays.toString(users));

    • @gautamkumarjha2686
      @gautamkumarjha2686 3 роки тому

      The first one is wrong algo

    • @HvujES
      @HvujES 3 роки тому

      @@gautamkumarjha2686 it's not wrong google in geeksforgeeks

    • @gautamkumarjha2686
      @gautamkumarjha2686 3 роки тому

      @@HvujES that code will true on some particular arrey only
      For example any integer greater then 15 at any index of array

    • @HvujES
      @HvujES 3 роки тому

      @@gautamkumarjha2686 works fine for me.
      www.geeksforgeeks.org/find-duplicates-in-on-time-and-constant-extra-space/

  • @sureshsubramaniyan3201
    @sureshsubramaniyan3201 3 роки тому

    suppose we have multiple duplicates like below and want to the print the output only once like duplicate elements = java,c++,python. Could you please guide me.
    String arr[] = {"java","python","c++","java","c","c++","devops","java","c++","python","python"};

  • @suiiiiii5798
    @suiiiiii5798 6 місяців тому

    ❤️

  • @maharudra947
    @maharudra947 2 роки тому

    what about multiple duplicates

  • @samK12_18
    @samK12_18 2 роки тому +3

    2 mistakes:
    1. i loop should be from 0 to array length-1.
    2. if condition inside j loop is incorrect.
    for(int i=0; i

    • @bhagathgudivaka1520
      @bhagathgudivaka1520 2 роки тому

      i

    • @samK12_18
      @samK12_18 2 роки тому

      @@bhagathgudivaka1520 Yes because if i goes to 5, then j becomes 6 and it will return array index out of bounds error.

    • @bhagathgudivaka1520
      @bhagathgudivaka1520 2 роки тому +2

      @@samK12_18 if j becomes 6 then inner loop will be stopped and Comes to outer loop again

  • @indiantourism975
    @indiantourism975 2 роки тому +2

    you're explained clearly and easily I understood how to find duplicate elements thank you so much, Sir. But the count of duplicate elements did not get the correct value when using the HashSet approach and I've given my coding below
    public class DuplicatesArrays {
    public static void main(String[] args) {

    Boolean flag = false;
    Boolean dntdup = false;
    int count = 0;
    int count1 = 0;
    String [] ar = {"l","m","v","m","n","y","m"};

    System.out.println(ar.length);

    // using for loop
    for (int i = 0; i < ar.length; i++) {
    for (int j = i+1; j < ar.length; j++) {
    if (ar[i]==ar[j]) {
    count = count+1;
    System.out.println("found duplicate :" + ar[i]);
    flag = false;

    }
    }
    }

    System.out.println("count duplicate elements by for loop: "+count);

    if (flag == true) {
    System.out.println("not found duplicate:");

    }

    //using hashset

    HashSet h = new HashSet();
    for (String l : ar) {
    if (h.add(l)==false) {
    count1 = count1+1;
    System.out.println("found duplicate :" + l);

    }
    }

    System.out.println("count duplicate elements by hashset :" + count1);

    if (flag == true) {
    System.out.println("not found duplicate:");

    }

    }
    }

    • @Forty3Stories
      @Forty3Stories Рік тому

      In hashset the first time the element is found count is zero . So while printing count u should print count + 1