题目
一、大概思路
一开始准备直接把所有数加在一起sum,当随机数>sum的时候当前用户的ID就是中奖用户,但是因为中间需要排序,并且需要摸清原来的用户ID和排序之后用户ID的对应关系,试了一下特别麻烦。
就想到用hashmap来做,比如说第一个用户的积分是20,那么就会存20个键值对,key是自然增长的数,然后value是用户的id。通过random取到某个随机数之后,只要通过hashmap.get()取得随机数对应的ID就可以知道中奖的用户是哪一位了。
二、代码实现
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class Random_ID {
public static void main(String[] args) {
int arr[] = {
20,34,160,212