Bagaimana Cara Menghapus Elemen Duplikat dari CSV atau File lain di Java?
Diterbitkan: 2021-05-28Menemukan baris duplikat dari file bukanlah masalah yang sulit. Namun terkadang dalam sebuah pertanyaan wawancara, orang terkadang menjadi sangat bingung tentang metode yang harus mereka gunakan.
Dalam tutorial ini kita akan membahas langkah-langkah tentang cara menghapus duplikat dari file CSV dan file lainnya.
Mari kita mulai:
Langkah 1.
Buat file CrunchifyFindDuplicateCSV
.java
Langkah 2.
- Masukkan kode di bawah ini ke dalam file.
- Kami menggunakan BufferedReader untuk membaca file.
- Satu demi satu tambahkan baris ke HashSet.
- Kelas HashSet mengimplementasikan antarmuka Set, didukung oleh tabel hash (sebenarnya instance HashMap). Itu tidak menjamin urutan iterasi dari himpunan; khususnya, itu tidak menjamin bahwa pesanan akan tetap konstan dari waktu ke waktu. Kelas ini mengizinkan elemen null.
- Gunakan metode add() untuk memeriksa apakah baris sudah ada di Set atau tidak.
- Menambahkan elemen yang ditentukan ke set ini jika belum ada. Lebih formal, tambahkan elemen tertentu e ke set ini jika set ini tidak berisi elemen e2 sehingga Objects.equals(e, e2). Jika set ini sudah berisi elemen, panggilan membiarkan set tidak berubah dan
returns false
.
- Menambahkan elemen yang ditentukan ke set ini jika belum ada. Lebih formal, tambahkan elemen tertentu e ke set ini jika set ini tidak berisi elemen e2 sehingga Objects.equals(e, e2). Jika set ini sudah berisi elemen, panggilan membiarkan set tidak berubah dan
- Setelah dilewati, kami akan mencetak garis itu sebagai garis yang dilewati.
file crunchify.csv
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
name city number age kedar kapan 9843875 23 sedai ktm 97798433 23 ayush kalopul 9856324 12 dipal ratopul 9842567 34 malla setiopul 1258496 33 ayush kalopul 9856324 12 babin karki hariyopul 32589 11 raju dhading 58432 44 sedai ktm 97798433 23 Crunchify , LLC PayPal . com Google . com Twitter . com FaceBook . com Crunchify , LLC Google . com Visa . com MasterCard . com Citi . com California Austin California |
CrunchifyFindDuplicateCSV.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
package crunchify . com . tutorial ; import java . io . BufferedReader ; import java . io . FileNotFoundException ; import java . io . FileReader ; import java . io . IOException ; import java . util . HashSet ; /** * @author Crunchify.com * How to Remove Duplicate Elements from CSV file in Java? */ public class CrunchifyFindDuplicateCSV { public static void main ( String [ ] argv ) { String crunchifyCSVFile = "/Users/Shared/crunchify.csv" ; // Reads text from a character-input stream, buffering characters so as to provide for the // efficient reading of characters, arrays, and lines. BufferedReader crunchifyBufferReader = null ; String crunchifyLine = "" ; // This class implements the Set interface, backed by a hash table (actually a HashMap instance). // It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will // remain constant over time. This class permits the null element. HashSet < String > crunchifyAllLines = new HashSet < > ( ) ; try { crunchifyBufferReader = new BufferedReader ( new FileReader ( crunchifyCSVFile ) ) ; while ( ( crunchifyLine = crunchifyBufferReader . readLine ( ) ) ! = null ) { if ( crunchifyAllLines . add ( crunchifyLine ) ) { crunchifyLog ( "Processed line: " + crunchifyLine ) ; } else if ( ! crunchifyIsNullOrEmpty ( crunchifyLine ) ) { crunchifyLog ( "--------------- Skipped line: " + crunchifyLine ) ; } } } catch ( FileNotFoundException e ) { e . printStackTrace ( ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } finally { if ( crunchifyBufferReader ! = null ) { try { crunchifyBufferReader . close ( ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } } } } // Check if String with spaces is Empty or Null public static boolean crunchifyIsNullOrEmpty ( String crunchifyString ) { if ( crunchifyString ! = null && !crunchifyString.trim().isEmpty()) return false; return true ; } // Simple method for system outs private static void crunchifyLog ( String s ) { System . out . println ( s ) ; } } // Linux command to remove duplicate lines from file: // $ sort -u /Users/Shared/crunchify.csv |

Mari kita jalankan program Java di IntelliJ IDE.
Berikut adalah hasilnya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Processed line : name city number age Processed line : kedar kapan 9843875 23 Processed line : sedai ktm 97798433 23 Processed line : ayush kalopul 9856324 12 Processed line : dipal ratopul 9842567 34 Processed line : malla setiopul 1258496 33 --------------- Skipped line : ayush kalopul 9856324 12 Processed line : babin karki hariyopul 32589 11 Processed line : raju dhading 58432 44 --------------- Skipped line : sedai ktm 97798433 23 Processed line : Processed line : Crunchify , LLC Processed line : PayPal . com Processed line : Google . com Processed line : Twitter . com Processed line : FaceBook . com --------------- Skipped line : Crunchify , LLC --------------- Skipped line : Google . com Processed line : Visa . com Processed line : MasterCard . com Processed line : Citi . com Processed line : California Processed line : Austin --------------- Skipped line : California Process finished with exit code 0 |
Semoga program Java ini bermanfaat bagi Anda, temukan baris duplikat di CSV atau file lainnya.
Bagaimana menemukan baris duplikat di CSV menggunakan perintah Linux?
1 |
$ sort - u / Users / Shared / crunchify . csv |
Hasil: