Java 如何计算彩票中每个号码的金额并将其输出到列表中?

Java 如何计算彩票中每个号码的金额并将其输出到列表中?,java,hashmap,Java,Hashmap,我正在写这个小小的彩票申请。 现在的计划是,计算在彩票的每次迭代中,每个数字被抽取的频率,并将其存储在某个地方。 我的猜测是,我需要使用一个HashMap,它有6个键,每次绘制相应的键数时,该值都会递增1。 但我如何才能做到这一点呢? 到目前为止,我的代码是: public void numberCreator() { // creating and initializing a Random generator Random rand = new Random(); //

我正在写这个小小的彩票申请。 现在的计划是,计算在彩票的每次迭代中,每个数字被抽取的频率,并将其存储在某个地方。 我的猜测是,我需要使用一个HashMap,它有6个键,每次绘制相应的键数时,该值都会递增1。 但我如何才能做到这一点呢? 到目前为止,我的代码是:

public void numberCreator()
{
    // creating and initializing a Random generator
   Random rand = new Random();
   // A HashMap to store the numbers picked. 
   HashMap hashMap = new HashMap();
   // A TreeMap to sort the numbers picked.
   TreeMap treeMap = new TreeMap();

    // creating an ArrayList which will store the pool of availbale Numbers
    List<Integer>numPool = new ArrayList<Integer>();

    for (int i=1; i<50; i++){
    // add the available Numbers to the pool
    numPool.add(i); 
    hashMap.put(nums[i], 0);
    }

    // array to store the lotto numbers
    int [] nums = new int [6];

    for (int i =0; i < nums.length; i++){
    int numPoolIndex = rand.nextInt(numPool.size());
    nums[i] = numPool.get(numPoolIndex);

    // check how often a number has been called and store the new amount in the Map
    int counter =  hashMap.get

    numPool.remove(numPoolIndex);
    }

    System.out.println(Arrays.toString(nums));

    }
public void numberCreator()
{
//创建和初始化随机生成器
Random rand=新的Random();
//用于存储拾取的数字的哈希映射。
HashMap HashMap=新的HashMap();
//用于对所选数字进行排序的树形图。
TreeMap TreeMap=新的TreeMap();
//创建一个ArrayList,用于存储可用电话号码池
listnumpol=newarraylist();
对于(int i=1;i
虽然我不知道你想在这里完成什么。不需要计算元素,因为无法多次检索数字。这是因为你将从一开始创建的列表中“提取”的任何数字都扔掉了


虽然我不知道你想在这里完成什么。不需要计算元素,因为无法多次检索一个数字。这是因为你将从一开始创建的列表中“绘制”出来的任何数字都扔掉了。

是的,哈希映射是保存此类信息的好方法

一个键值为连续整数的hashmap感觉很奇怪。在这个特定的例子中,我更喜欢一个简单的整数数组,并增加对应于绘制的球的元素


我会检查您从池中绘制球的逻辑。我认为get方法并没有达到您期望的效果。也许使用numPool集合并移除所选球更合适。

是的,hashmap是保存此类信息的好方法

一个键值为连续整数的hashmap感觉很奇怪。在这个特定的例子中,我更喜欢一个简单的整数数组,并增加对应于绘制的球的元素


我会检查您从池中绘制球的逻辑。我认为get方法并没有达到您期望的效果。也许使用numPool集合并删除所选球更适合。这里的HashMap或任何类型的映射都太复杂了。您只需要计算一个数组就可以了

假设您有49个可能的数字,请声明一个数组:

int counts = new int[49];
Arrays.fill(counts,0);
然后,对于每次抽奖,请执行以下操作:

int drawnumbers[6]; // put the numbers for this draw in the array
for (int i=0;i<6;++i) {
  counts[drawnumbers[i]-1]++;
}
int drawnumbers[6];//将此绘图的数字放入数组中

对于(inti=0;i,HashMap或任何类型的map在这里都太复杂了。计算数字出现次数所需的只是一个数组

假设您有49个可能的数字,请声明一个数组:

int counts = new int[49];
Arrays.fill(counts,0);
然后,对于每次抽奖,请执行以下操作:

int drawnumbers[6]; // put the numbers for this draw in the array
for (int i=0;i<6;++i) {
  counts[drawnumbers[i]-1]++;
}
int drawnumbers[6];//将此绘图的数字放入数组中
对于(int i=0;i