Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Java Programming >> Content

    Hur att generera slumptal Utan Repetition i Java

    Java ger verktyg för att generera slumptal i dina program . Om du vill skapa en serie av slumptal , men vill inte någon av dem som skall upprepas , måste du använda villkorliga tester och loopar . Genom att addera varje nummer du skapar en uppsättning samling objekt , kan du berätta omedelbart om någon av dem är dubbletter . Om numret är en dubblett kan du instruera Java fortsätta generera nya siffror tills den hittar en du inte redan har lagt till uppsättningen . Processen involverar två slingor och en villkorlig uppgift . Instruktioner
    1

    Importera Java verktyg som behövs för din slumptalsgenerering och uppsättning objekt . Lägg till följande kod på toppen av din klass förklaring : import java.util *;

    Skapa en uppsättning objekt för att lagra de nummer du genererar : . TreeSet myNumbers = ny TreeSet ( ) ;

    Skapa en instans av slumpmässiga klassen för att skapa dina slumptal : Random randGen = new Random ( ) ;
    2

    Skapa en slinga för att skapa dina slumptal . Följande for-slingan ska köras 20 gånger : for (int i = 0 ; i < 20 , i + + ) { //antal generation här }

    Inuti denna loop , kan du lägga till bearbetning för att generera och kontrollera din slumpmässiga nummer för dubbletter . Ändra numret 20 för att återspegla det totala antalet slumpmässiga värden som du vill att ditt program generera . Inne i loopen , generera ett slumpmässigt heltal : int randNum = randGen.nextInt ( ) ;

    Detta kommer att köra varje gång slingan itererar Addera 3

    Lägg en andra slinga . att hantera dubbla siffror . Lägg till följande kod i din första loop efter antalet generationen raden : for ( ; ;) { //hantera dubbletter }

    Detta är en oändlig loop , så det kommer att utföra oändligt tills koden explicit bryter ut den. Inuti denna loop , kan du instruera Java fortsätta generera slumptal tills den genererar en som du inte redan har använts .
    4

    Lägg ett villkorligt test på varje slumptal . Infoga följande kod i din oändlig slinga : Om ( myNumbers.add ( randNum ) ) break; annars randNum = randGen.nextInt ( ) ;

    När du försöker lägga till ett element i en uppsättning , returnerar metoden sant eller falskt . Om elementet inte redan i uppsättningen , returneras sant , då din kod kan bryta sig ut ur loopen . Om elementet är redan i uppsättningen , returnerar metoden false , i vilket fall du kan instruera Java för att välja ett annat slumptal . Slingan kommer sedan köra igen , testa det nya värdet för att se om det är en kopia . Denna process fortsätter tills ett nytt värde hittas .
    5

    Testa din kod . Lägg till följande rad efter din oändlig slinga , men fortfarande inuti den yttre slingan : System.out.println ( randNum ) ;

    Detta låter dig se på en gång att dina siffror är alla unika . Spara filen , kompilera och kör programmet för att testa det . Bläddra igenom utgången för att kontrollera att dina funktioner fungerar .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Så här ändrar paketets namn i Eclipse
    ·Hur man gör en användare Avslutade Loop i Java
    ·Hur man kan få en webbkamera via Java
    ·Hur du krypterar en stor fil i Java
    ·Hur man skapar en ny form Inne i NetBeans Projekt
    ·Hur man kompilerar en JSP-fil
    ·Förhållandet mellan JSP och Java
    ·Hur Jämför Karaktär Ignorera Fall i Java
    ·Hur man beräknar vinst i Java
    ·Internationaliseringen av Java Coding
    Utvalda artiklarna
    ·Hur man läser MDB för ODBC
    ·Hur du använder PHP med JavaScript
    ·Hur man avgör kontroll med en nuvarande fokus VB
    ·Definition JDK
    ·Hur man skapar Vb Grafiska Screens
    ·Varav variabla datatyper lagras i ordningsföljd i Visu…
    ·Konvertera engelska till MATLAB
    ·Så här kontrollerar för ODBC Driver i VBA
    ·Hur man visar en GridView horisontellt i Vb.Net
    ·Hur man gör ett spel med Java Software
    Copyright © Dator Kunskap http://www.dator.xyz