Läget är en matematisk term som refererar helt enkelt till de vanligaste nummer som anges i en uppsättning . Samtidigt hitta läget i Java kan tyckas vara en enkel uppgift i början , kan det visa sig vara lite svårare när du kommer upp mot alla krångligheter av problemet
Du behöver : .
tillgång till Internet.
1 .
Skapa en klass som heter ” ModeFinder ” och förvara den i en fil som heter ” ModeFinder. java . ” Sätt in följande text i det att definiera klass :
import java. util. ArrayList ;
import java . util. Hashtable ;
/**
* Denna klass hittar läget , eller mest gemensamt värde i en lista med tal
* @ author Kevin . Walker
* /
public class ModeFinder {
/**
* Detta returnerar de (t ) av de värden som i den givna ArrayList .
* @ param lista De uppgifter att hitta det läge i.
* @ return läge eller lägen .
* /
offentliga ArrayList
public static void main ( String [ ] args ) { }
}
2 .
Befolka hash-tabell . Inne i parentes av ” getMode ” metod , lägg till följande kod :
Hashtable
heltal räkna ,
//Skapa en hashtable som mappar varje nummer från listan med antalet gånger det inträffar
för . ( Double D: Förteckning ) {
count=occurances. get (d ) ;
if ( count == null ) {
count=0 ; }
räkna +=1 ;
händelser . sätta ( d , räkna ) ,
}
Going rad för rad , skapar detta en Hashtable heter ” händelser . ” De händelser hashtable kommer att hålla två värden som är knutna till varandra . Den första kommer att vara nummer från den inställda skickas till metoden . Den andra kommer att hålla antalet gånger som nummer förekommer i förteckningen över angivna värden .
Därefter går igenom hela listan som har gått i. Om värdet inte redan finns i hashtable , lägger det till det i hashtable med räkna till ett . Om det redan är i hashtable , lägger det en till räkningen på hur många gånger det har dykt upp.
3 .
Hitta de siffrorna i hashtable med de högsta värdena räknas . Lägg till följande kod precis under den sista delen av koden och fortfarande inom getMode metoden :
ArrayList
int highestCount=0 ;
//För varje dubbel i hashtable , om det är det vanligaste , tydliga
//lägena listan och lägga till den . Om det är på delad vanligaste , lägga till det
//lägena listan
för ( Double d : occurances. keySet () ) . {
if ( occurances. get (d ) > ; highestCount ) {
highestCount=occurances. get (d) ,
results. clear () ;
results. add (d ) ; }
else if ( occurances. get ( d ) == highestCount ) {
results. add (d ) ; }
}
återvända resultat ,
4 .
Skapa ett testprogram i de viktigaste metoden . Skriv in följande kod i den huvudsakliga metoden :
ArrayList
data. add (3,0 ) ;
data. add ( 5,6 ) ,
data. add ( 2,2 ) ,
data. add (3,0 ) ,
data. add (3,0 ) ,
data. add ( 5,6 ) ;
data. add ( 2,2 ) ,
data. add (3,0 ) ,
data. add ( 2,2 ) ,
data. add ( 2,2 ) ;
ArrayList
System. out. println (” lägen är : ”) ;
för ( Double d : resultat ) { System. out. println
( d ) ; }
Detta skapar en ArrayList av testdata , fylls den med en grupp med nummer och sedan försöker hitta läge att skriva ut fullständig lista över lägen upptäckt . I detta fall lägena 3,0 och 2,0 , eftersom de varje inträffar fyra gånger .
コメント