JavaはHashMapを利用して乱数の個数を統計する
2534 ワード
コードは以下の通り、配列で作るよりも分かりやすい感じです
プログラム実行結果は
ごく簡単な書き方がある
結果は次のとおりです.
import java.util.*;
public class SearchTest {
public static void main(String[] args) {
int a[] = new int[50];
Random r = new Random();
for(int i = 0;i<50;i++)
{
a[i] = r.nextInt(40)+10;
}
SearchTest st = new SearchTest();
a = st.asort(a);
System.out.println(" 50 (10,50) , :");
for(int i = 0;i<50;i++)
{
System.out.print(a[i]+",");
}
System.out.println();
System.out.println(" :");
System.out.println();
st.searchnum2(a);
}
public int[] asort(int[] a)//
{
int temp;
for(int i = 0;ia[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
return a;
}
public void searchnum2(int[] a) // ( map)
{
HashMap map = new HashMap();
for(int i = 0;i
プログラム実行結果は
50 (10,50) , :
10,11,11,14,14,15,15,16,16,22,22,23,26,27,27,27,27,28,28,29,29,30,31,31,32,32,32,34,35,35,35,35,36,36,37,38,39,39,41,45,45,45,45,46,46,48,48,48,49,49,
:
10 1
11 2
14 2
15 2
16 2
22 2
23 1
26 1
27 4
28 2
29 2
30 1
31 2
32 3
34 1
35 4
36 2
37 1
38 1
39 2
41 1
45 4
46 2
48 3
49 2
ごく簡単な書き方がある
public void searchnum3(int[] a)
{
Map map = new HashMap();
for(Integer in :a)
{
map.put(in,map.get(in)==null?1:map.get(in)+1);
}
System.out.println(map);
}
結果は次のとおりです.
50 (10,50) , :
10,11,11,12,12,13,13,15,16,16,16,16,17,17,18,21,22,23,24,24,24,25,26,26,28,30,30,30,31,31,34,34,35,37,38,39,43,44,44,44,44,45,45,45,46,46,46,47,47,47,
:
{10=1, 11=2, 12=2, 13=2, 15=1, 16=4, 17=2, 18=1, 21=1, 22=1, 23=1, 24=3, 25=1, 26=2, 28=1, 30=3, 31=2, 34=2, 35=1, 37=1, 38=1, 39=1, 43=1, 44=4, 45=3, 46=3, 47=3}