Dator > hur du tar bort dubbletter från arrayer i Java

  • hur du tar bort dubbletter från arrayer i Java


  • Ta bort dubbla poster från en Java array till en början verkar vara en subtil problem . Din första instinkt skulle vara att iterera igenom hela matrisen manuellt , jämföra uppgifterna för dubbletter och bygga en ny array , en post i taget . Detta är onödigt komplicerat , och det finns ett bättre sätt att lösa problemet med hjälp av HashSet klassen som kommer med Java . En av de användbara funktionerna i denna klass är att det kan upptäcka om ett tillagda objektet är en dubblett av ett befintligt objekt utan att leta och automatiskt lämna ut det .
    1 .
    skapa en klass för att hålla " removeDuplicates " metoden. Om du använder en textredigerare , klicka på " File ", " Nytt "och sedan på " File ", " Spara som ". Ge det namnet , till exempel " ArrayCleaner. java . " Om du använder en Java IDE , kommer du troligen att ha en "Fil-> Ny Klass " alternativ , men detta kan variera beroende på IDE -programmet .

    Klistra in följande kod :

    klass ArrayCleaner {
    //
    }

    resten av koden står innanför konsolerna .
    2
    Importera HashSet klassen genom att lägga till följande kodrad i den absoluta toppen i din klass filen: .

    import java. util. HashSet , <. br >
    3
    Lägg till removeDuplicates metoden :


    public static Object [ ] removeDuplicates ( Object [ ] array ) {
    HashSet hs=ny HashSet () ;

    för ( Object x : array ) {
    //Detta fungerar eftersom HashSet ignorerar automatiskt duplicera objekt .
    hs. add (x ) ; }


    retur hs. toArray () ; .
    }
    4
    Skriv ett test huvudsakliga metod för att säkerställa att det fungerar som förväntat :


    public static void main ( String [ ] args ) {
    Integer [ ] a=ny Heltal [3 ] ;
    en [0 ]=1 ;
    en [ 1 ]=2 ;
    en [2 ]=1 ;
    Object [ ] arr=removeDuplicates (a ) ,

    för ( Object x : arr ) {
    System . out. println (x ) ; }

    }
     

    tips och varningar


     

    • i datavetenskap jargong , det tar bort dubbletter metod sker i O ( n ) tid snarare än O ( n ^ 2 ) tid . På ren svenska är det HashSet klassen mycket snabbare och effektivare än att bygga en ny array för hand .
    8 3 5 6 7


Previous:nothing Next:vad är skillnaden mellan en mobil webbsida och en HTML-läsare ?





Relaterade artiklar


  • vb.net SQL-databas tutorial
  • hur man gör ett Visual Basic Bildöverförare
  • hur man skapar en ny ansökan asp.net web
  • listan över funktioner i Visual Basic
  • grundläggande sql tutorial
  • Visual Basic-program tutorial
  • hur man använder picturebox kontroll i Visual Basic
  • SQL-uttryck lagrade procedurer
  • Corsair minne grunderna
  • hur du ansluter trådlöst hårdvara